TypeError:Object不支持此属性或方法

我已创建rails应用程序,我在其中创建了一个数据库(空)。 当我尝试查看我的产品页面时,我在http:// localhost:3000 / products页面上收到以下错误。 在迁移数据库之前,应用程序确实起作用。 我正在使用therubyracer,我在Windows 7上。

ExecJS::ProgramError in Products#index Showing C:/RailsInstaller/DevKit/home/JP/nameofapp/app/views/layouts/application.html.erb where line #16 raised: TypeError: Object doesn't support this property or method (in C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee) Extracted source (around line #16): 13  14 15  true %> 16  true %> 17  18 19  Rails.root: C:/RailsInstaller/DevKit/home/JP/nameofapp 

这是我在Rails服务器上得到的:

 Started GET "/products" for 127.0.0.1 at 2015-04-23 22:28:06 -0400 ActiveRecord::SchemaMigration Load (0.0ms) SELECT "schema_migrations".* FROM "schema_migrations" Processing by ProductsController#index as HTML Product Load (0.0ms) SELECT "products".* FROM "products" Rendered products/index.html.erb within layouts/application (4.0ms) Completed 500 Internal Server Error in 3391ms ActionView::Template::Error (TypeError: Object doesn't support this property or method (in C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/ assets/javascripts/turbolinks.js.coffee)): 13:  14: 15:  true %> 16:  t rue %> 17:  18: 19:  app/views/layouts/application.html.erb:16:in `_app_views_layouts_application_h tml_erb__912949727_56715336' Rendered C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 /lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.0ms) Rendered C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 /lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (6.0ms) Rendered C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 /lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (27.0ms) 

感谢您的任何帮助。

我从application.js中删除了require_tree并且它工作正常

 //= require jquery //= require jquery_ujs //= require turbolinks // require_tree . 

发生此错误是因为找到位于app / assets中的正确资产时出现问题。 要解决此问题,您可以按照以下步骤操作。

将gem’coffee -script-source’,’1.8.0’添加到Gemfile中并运行bundle install然后运行bundle update coffee-script-source重新启动rails server或者有一个脏的解决方法是更改​​代码

 <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> <%= javascript_include_tag "application", "data-turbolinks-track" => true %> <%= csrf_meta_tags %> 

 <%= stylesheet_link_tag "default", media: "all", "data-turbolinks-track" => true %> <%= javascript_include_tag "default", "data-turbolinks-track" => true %> <%= csrf_meta_tags %> 

但请注意,此解决方法并未真正解决应用程序问题,它只是使您的应用程序无需预期的样式表和javascripts。

我也有这个问题,检查这个线程的广泛解决方案, Windows上的ExecJS :: RuntimeError试图跟随 @Kevin P的rubytutorial。另外, @ evedoevelli的解决方案,另一个线程: Rails ExecJS :: ProgramError in Pages#家? 作品。 我使用了第二个解决方案,这是最近的日期。

我认为Best Solution正在删除application.js文件中的斜杠

 = require jquery = require jquery_ujs = require turbolinks = require_tree . 

仔细研究后,这是我偶然发现的解决方案。 只需确保安装了最新版本的NodeJ 。 安装NodeJ后,请确保重新启动我们的系统。 但是,更新Windows操作系统非常重要。 你应该没事。 如果您使用的是RubyMine ,现在应该可以使用。 无需担心咖啡脚本问题。 ExecJs程序错误似乎与NodeJ及其相关模块更相关。

对我来说,解决方案是删除 –

  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'%> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 

应用程序\意见\布局\ application.html.erb

原因是因为没有安装NodeJS 。 如果你安装它,问题应该消失。

但是,这在application.js也可以正常工作:

 //= require jquery //= require jquery_ujs //= require turbolinks // require_tree . 

但这不是首选方法,因为所有这些都是禁用railsfunction。 例如,ActionCable不适用于此更改。