我最近使用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)
有没有办法摆脱这个错误?或者这是一个错误?
答案 0 :(得分:16)
我最近找到了解决此问题的另一种解决方案。 gem 'coffee-script-source'
中的1.9.0
在Windows
上与Rails存在一些问题。我在Gemfile中使用gem 'coffee-script-source', '1.8.0'
恢复到以前的版本,这将解决您的问题。
解决此异常的另一种方法是在您的计算机上安装Node.js,并且在安装&amp; amp;之后错误应该消失。重新启动rails server
。确保在重新启动终端之前将Node.js添加到PATH中并重新运行服务器。
答案 1 :(得分:4)
啊,好像你错过了
//= require turbolinks
在你的application.js
中有关删除turbolink的信息,请参阅this(显然,如果您希望它运行,请确保它已全部到位)。
答案 2 :(得分:4)
我正在运行Windows 10,Ruby 2.1.7p400和Rails 4.2.4。我无法在版本1.9.1.1上安装gem coffee-script-source '1.8.0'
作为gem安装。我尝试更改ExecJS以使用UTF-8编码并运行带有// U开关的cscript,如同this帖子一样,没有任何运气。
我最终将nodejs.exe放在Ruby \ bin文件夹中,问题得到了解决。