Convert primitive Ruby structures into Javascript

Controller responses often include Javascript code that contains values from Ruby variables. E.g. you want to call a Javascript function foo(...) with the argument stored in the Ruby variable @foo. You can do this by using ERB tags (<%= ruby_expression %>) or, in Haml, interpolation syntax (#{ruby_expression}).

In any case you will take care of proper quoting and escaping of quotes, line feeds, etc. A convenient way to do this is to use Object#json Show archive.org snapshot , which is defined for Ruby strings, numbers, arrays and hashes:

Tree.init({
  path: <%= tree_url(@tree).to_json %>,
  child_ids: <%= @tree.child_ids.to_json %>
});

The output of #to_json will be properly quoted and escaped. There is no need to wrap it with your own quotes.

Henning Koch