【发布时间】:2012-01-20 18:49:19
【问题描述】:
在 Rails 3.1 中,无法使用 等语法访问资产 js.erb 或 coffee.erb 文件中的控制器实例变量,其中 @foo 在控制器中设置。那么问题就是将控制器变量传递给 CoffeeScript 或 JavaScript 资产的最佳方法是什么。
这个问题已经在论坛上以多种复杂的形式提出,但我再次询问的目的是有一个地方可以收集所有建议,并且提供的代码简单易读。另请注意,我专门指的是资产,而不是查看响应文件。
【问题讨论】:
-
这是 stackoverflow.com/questions/8108511/… 的副本吗?看起来那里接受的答案会有所帮助。
-
@Thilo 据我了解,该问题是指视图文件夹中的 .slim 模板,因此实际上 CoffeeScript 正在作为视图的一部分而不是预先作为资产文件进行处理。如果我错了,请纠正我。
-
是的,我对 Rails 不够熟悉,无法确定该答案是否适用。但要点似乎是将您需要的所有实例变量呈现到一段 Javascript 中,然后其他资产可以引用。
-
在这里会引起争议,问你为什么需要这样的访问权限?
-
另外,相关问题的第二个答案实际上显示了我认为更好的做法。将您需要的任何数据存储在您真正需要的数据属性中。此外,请考虑使用 JSON 响应从您的 rails 操作请求非 HTML 模板的任何内容。
标签: ruby-on-rails controller coffeescript erb instance-variables