如何使用 Rails 代码/将变量传递给 .coffee javascript 文件?
Posted
技术标签:
【中文标题】如何使用 Rails 代码/将变量传递给 .coffee javascript 文件?【英文标题】:How to use rails code / pass variables to a .coffee javascript file? 【发布时间】:2012-03-02 17:07:12 【问题描述】:在 .coffee 脚本中传递值的最佳方式是什么?将文件重命名为 .erb 会破坏我的应用程序,那么有哪些替代方法?
【问题讨论】:
Rails: access controller instance variable in CoffeeScript or javascript asset file 的可能重复项 【参考方案1】:查看此导轨指南。本节:2.3.3 JavaScript/CoffeeScript and ERB 您可以在 .coffee-script 文件中使用 rails 代码。它是内置功能。
第二次编辑___
如果文件在资产管道中,那么您需要在咖啡文件末尾添加 .erb 扩展名,以便 rails 标签可以正常工作,否则如果您在视图文件夹中移动文件,则无需添加 .erb 扩展名 rails 标签有效在那里。
【讨论】:
我认为您链接到的文档指出您需要将扩展名从 .coffee 更改为 .coffee.erb【参考方案2】:您可以 (1) 将文件移动到您的 app/views 目录中(因此它不会在资产管道中),或者 (2) 通过查询字符串传递信息。
(1) app/views/users/script.js.coffee.erb
var username = <%= @user.name %>
(2) 我正在使用this 函数
<%= link_to "User", user_path(@user, :username => @user.name) %>
...
var username = getParameterByName('username')
未经测试,但这是一般的想法。
【讨论】:
以上是关于如何使用 Rails 代码/将变量传递给 .coffee javascript 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Rails视图中将Ruby变量传递给JavaScript函数?
Rails 6 - 传递给部分时未定义的局部变量,但当我将调试器放入 erb 文件时定义了它
如何将 pdf_file 传递给 rails 中的解析器方法?