I’ve recently started learning Ruby on Rails, based on RoR3 beta/RC. I had earlier been developing applications using other frameworks (like Django), where the JavaScript had been written completely on my own.
When developing application using RoR, I get confused by the two possible ways of implementing JavaScript: the “pure” one (writing JavaScript and putting it in the <script> tag) and writing RJS files.
Which of the approach should rather be used and when? If RJS, how do I implement particular actions like onChange?
In rails you should use both approaches for different tasks. So do I. When I would like to execute ajax request, I use RJS because it simplifies the request and allows to write more powerful and flexible respond within .rjs file with a much less code. For example it is possible to use partials in it and to get access to ruby variables. When I would like to make a page more dynamic, I use plain javascript including it with
javascript_include_tag.UPD.
This approach works in rails 3 the same way. It’s possible to use it with JQuery and HAML. UJS in Rails 3 even simplifies it. The only thing you should do is to use jquery-ujs if you prefer Jquery over Prototype and proper file naming like
create.js.haml.For example it possible to use server-side validation in AJAX requests with this approach.