如何使用 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 文件时定义了它

如何将javascript变量传递给嵌入式ruby?

如何将 pdf_file 传递给 rails 中的解析器方法?

如何使用 AJAX 请求将用户在类变量中的 HTML5 位置从 JavaScript 传递到 Rails 控制器?

如何从rails中的视图将值传递给jquery?