1.在javascript中使用ruby簡單對象
<%= javascript_tag do %>
url = '<%= j products_url %>';
<% end %>
此時的<%= %>是由引號包裹的。rails的j方法是爲了正確地轉義ruby對象從而嵌入javascript中。
2.在javascript中使用ruby複雜對象
<%= javascript_tag do %>
products = <%= raw Product.limit(10).to_json %>
<% end %>
此時<%= %>無引號包裹。3.Gon gem
gem 'gon'
然後在/app/views/layouts/application.html.erb文件中包含gon:
<head>
<title>Store</title>
<%= include_gon %>
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tag %>
</head>
然後在controller中就可以以這種形式爲javascript對象賦值:
gon.variable_name = variable_value
# or new syntax
gon.push({
:user_id => 1,
:user_role => "admin"
})
gon.push(any_object) # any_object with respond_to? :each_pair
例如:
gon.variable_name
即: