Rails 提问:如何在 js 文件里加入 rails 变量

whitecrow · March 29, 2013 · Last by wushexu replied at April 01, 2013 · 6682 hits

我想在写带有 rails 变量的 js 代码,但又不想放在 html.erb 里,想用外加的 js.erb 文件,怎么做比较好?能把 js.erb 放到 app/assets/javascript 文件夹里吗?

assets 编译之后就不会变了,放常量可以,放不了变量。

不行的,app/assets/javascript 文件夹里面放的应该是.js 文件

你要想这么做,你可以把那个 rails 的变量放在页面中的一个隐藏域中

例如:

<input type="hidden" id="user_name" value="<%= @user.name %>"/>

在 js 中就能取到这个@user.name的值 jquery 代码如下 var user_name = $("#user_name").val();

开发应该有一个思想,js 代码归 js 代码,html 归 html,ruby 代码归 ruby 代码

这样看起来很舒服

多谢 LS 两位大牛, :D 知道怎么做了。

我觉得还是这样吧

<%= javascript_tag do %>
  window.productsURL = '<%= j products_url %>';
  window.products = <%= raw Product.limit(10).to_json %>
<% end %>

http://railscasts.com/episodes/324-passing-data-to-javascript?view=asciicast

#5 楼 @small_fish__ 这个好,可以用 render 啊!!聪明。

You need to Sign in before reply, if you don't have an account, please Sign up first.