我正在使用Rails 3.2.13。
在这里查看一些帖子后,为了在CoffeeScript中使用erb,您的文件只需要.js.coffee
扩展名,而不是.js.coffee.erb
(奇怪)。
然而,我似乎仍无法让它发挥作用。例如,我在demo.js.coffee
文件中有以下内容:
console.log '<%= root_url %>'
经过所有处理后,似乎产生了:
(function() {
console.log('<%= root_url %>');
$(function() {});
}).call(this);
正如您所看到的,CoffeeScript已经过处理,但erb却没有。发生了什么事?
答案 0 :(得分:6)
令人困惑,在某些情况下,.erb
扩展名是必需的,有些则不是。{我发现在处理资产目录下的咖啡脚本文件时,它是必需的,但是,当它隐含在视图中时。
因此,在您的情况下,应将其称为demo.js.coffee.erb
第二个问题是erb正在app环境之外进行评估,所以你需要以下几行
'<% url = RailsAppName::Application.routes.url_helpers %>'
console.log '<%= url.root_path %>'
找到类似的问题