javascript_include_tag 抛出不支持的方法

javascript_include_tag throws unsupported method

我最近使用 Rails 4.2.0 创建了一个新项目,并为着陆页创建了一个名为 Land 的控制器。所以,我 运行 在访问 http://localhost:3000/land/home:

时遇到了这个错误
Started GET "/" for ::1 at 2015-02-27 15:56:23 -0600
Processing by LandController#home as HTML
Rendered land/home.html.erb within layouts/application (0.0ms)
Completed 500 Internal Server Error in 5526ms

ActionView::Template::Error (TypeError: Object doesn't support this property or method
(in C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)):
3: <head>
4:   <title>Course</title>
5:   <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
6:   <%= javascript_include_tag 'application' %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__1279127835_98590860'


Rendered C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_source.erb (5.0ms)

Rendered C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_trace.html.erb (10.0ms)

Rendered C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_request_and_response.html.erb (1.0ms)

Rendered C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_web_console.html.erb (2.0ms)

Rendered C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/template_error.html.erb within rescues/layout (72.0ms)

有没有办法消除这个错误?或者这是一个错误?

啊啊,看来你没了

//= require turbolinks

在你的application.js

请参阅 this 了解如何删除 turbolinks(如果需要,请确保一切就绪 运行)。

我最近找到了这个问题的另一个解决方案。 1.9.0 中的 gem 'coffee-script-source'Windows 中的 Rails 存在一些问题。我在 Gemfile 中使用 gem 'coffee-script-source', '1.8.0' 恢复到以前的版本,这将解决您的问题。

解决此异常的另一种方法是在您的计算机上安装 Node.js,安装并重新启动 rails server 后错误应该会消失。确保在重新启动终端并重新运行服务器之前将 Node.js 添加到 PATH 中。

我是 运行 Windows 10,Ruby 2.1.7p400 和 Rails 4.2.4。我无法安装 gem coffee-script-source '1.8.0',因为 gem 坚持使用 1.9.1.1 版。我尝试将 ExecJS 更改为使用 UTF-8 编码和 运行 cscript 而没有 //U 开关,如 this post 中一样,但也没有任何运气。

我最终将 nodejs.exe 放在 Ruby\bin 文件夹中,问题已解决。