错误的coffeescript(Rails 3.2.13)?

时间:2013-06-22 16:45:27

标签: javascript ruby-on-rails ruby-on-rails-3 coffeescript erb

我正在使用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却没有。发生了什么事?

1 个答案:

答案 0 :(得分:6)

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

因此,在您的情况下,应将其称为demo.js.coffee.erb

第二个问题是erb正在app环境之外进行评估,所以你需要以下几行

'<% url = RailsAppName::Application.routes.url_helpers %>'
console.log '<%= url.root_path %>'

可以在Route helpers in asset pipeline

找到类似的问题