错误的coffeescript(Rails 3.2.13)?

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却没有.这是怎么回事?

oma*_*mas 6

这是令人困惑的,在某些情况下,.erb扩展是必需的,而在某些情况下则不是.我发现在处理资产目录下的咖啡脚本文件时,它是必需的,但是,当它隐含在视图中时.

所以在你的情况下应该调用它 demo.js.coffee.erb

第二个问题是,erb正在应用程序上下文之外进行评估,因此您需要以下几行

'<% url = RailsAppName::Application.routes.url_helpers %>'
console.log '<%= url.root_path %>'
Run Code Online (Sandbox Code Playgroud)

类似的问题可以在这里找到资产管道中的路径助手