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

whitecrow · 2013年03月29日 · 最后由 wushexu 回复于 2013年04月01日 · 6659 次阅读

我想在写带有 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 啊!!聪明。

caiqinghua 如何优雅地把 Hash 参数传递给 JavaScript 提及了此话题。 08月08日 21:34
需要 登录 后方可回复, 如果你还没有账号请 注册新账号