RJS vs Javascript Template in Rails 3?

Hi all,

I start looking in unobtrusive javascript functionality in Rails 3. I couldn't make any different when to use RJS vs pure Javascript template.

For example: #RJS: page.replace_html, 'some_div', :partial => 'some_partial'

#JS $("some_div").update("<%= escape_javascript(render('some_partial')) %>");

Could you point me some cases when they are used?

Thanks, Samnang

I had problem with #JS template method, so I just use the inline javascript page.replace_html.

The JS template wouldn’t update my DIV. Have you gotten the js template method working?

Samnang wrote in post #949445:

Hi all,

I start looking in unobtrusive javascript functionality in Rails 3. I couldn't make any different when to use RJS vs pure Javascript template.

For example: #RJS: page.replace_html, 'some_div', :partial => 'some_partial'

#JS $("some_div").update("<%= escape_javascript(render('some_partial')) %>");

Well, you should never ever be writing ERb in your JavaScript like that. JS files should IMHO always be static.

I lean more toward writing my JavaScript directly, at least with Rails 2. But RJS might be nice for calling certain Ajax actions.

Could you point me some cases when they are used?

Thanks, Samnang

Best,

The goodness of unobtrusiveness really shows when the project turns big and you have all your code separated, it allows easy maintenance, debugging and updates, imaging having all your styles in the html and the having to change the site’s look, lots of potential to brake code just for changing a little thing, same with obtrusive js.

Samnang wrote in post #949445:

Hi all,

I start looking in unobtrusive javascript functionality in Rails 3. I couldn't make any different when to use RJS vs pure Javascript template.

For example: #RJS: page.replace_html, 'some_div', :partial => 'some_partial'

#JS $("some_div").update("<%= escape_javascript(render('some_partial')) %>");

Well, you should never ever be writing ERb in your JavaScript like that. JS files should IMHO always be static.

I've been looking at making a very JS heavy interface of late and it actually requires replacing sections of the page with dynamic content. Your take on it suggests that you could only ever return a static js script, and therefore have no dynamic content. Is that right?

I lean more toward writing my JavaScript directly, at least with Rails 2. But RJS might be nice for calling certain Ajax actions.

The above examples merely do the same job with a cleaner syntax?

Just trying to take a look at best practices and gauge what I would consider to be most appropriate.

RobL

Rob Lacey wrote in post #949724: