Xåp*_* - 2 javascript ruby-on-rails erb coffeescript ruby-on-rails-3
我正在使用Rails 3.2.13.
看完这里的一些帖子后,看起来为了在CoffeeScript中使用erb,你的文件只需要有一个.js.coffee扩展名,而不是.js.coffee.erb(奇怪).
但是,我似乎仍无法让它发挥作用.例如,我在demo.js.coffee文件中有以下内容:
console.log '<%= root_url %>'
Run Code Online (Sandbox Code Playgroud)
经过所有处理后,似乎产生:
(function() {
console.log('<%= root_url %>');
$(function() {});
}).call(this);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,CoffeeScript已经过处理,但erb却没有.这是怎么回事?
这是令人困惑的,在某些情况下,.erb扩展是必需的,而在某些情况下则不是.我发现在处理资产目录下的咖啡脚本文件时,它是必需的,但是,当它隐含在视图中时.
所以在你的情况下应该调用它 demo.js.coffee.erb
第二个问题是,erb正在应用程序上下文之外进行评估,因此您需要以下几行
'<% url = RailsAppName::Application.routes.url_helpers %>'
console.log '<%= url.root_path %>'
Run Code Online (Sandbox Code Playgroud)
类似的问题可以在这里找到资产管道中的路径助手