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

时间:2015-03-05 15:57:41

标签: ruby-on-rails-4 coffeescript

我有以下rails配置:

Windows 7
Rails 4.1.1
Ruby 2.0.0p481
Gem: coffee-rails 4.0.1
Gem: coffee-script 2.3.0
Gem: coffee-script-source 1.9.1

我的应用程序工作正常,但现在没有。我不记得改变什么(git diff没有透露任何东西)。我得到的错误是:

TypeError: Object doesn't support this property or method
  (in c:/Users/mbratc01/Documents/Rails/manpower/app/assets/javascripts/welcome.js.coffee)

Extracted source (around line #9):
 7 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => false %>
 8 <%= javascript_include_tag 'jquery-1.11.1', 'data-turbolinks-track' => false %>
 9 <%= javascript_include_tag 'application', 'data-turbolinks-track' => false %>
10 <%= csrf_meta_tags %>
11 </head>

我还没有Coffeescript项目。 welcome.js.coffee的内容是:

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

我发现如果我只是将此文件移动到另一个无法访问的位置,则应用程序运行正常。另外,在.coffee文件夹中放置一个空的app/assets/javascript文件会产生相同的错误。

我在StackOverflow上看到过几篇看起来非常相似的帖子,但在阅读完它们之后,我找不到问题的根本原因,也无法解决问题而不只是摆脱{{1文件。我怀疑这里有一些关于CoffeeScript功能设置不太正确的东西,但不确定是什么给出了正确的宝石似乎安装。

有人建议可能导致此错误的原因吗?

2 个答案:

答案 0 :(得分:6)

根据this,CoffeeScript在Windows上不能很好地发挥作用。您可能希望尝试降级CoffeeScript版本或将其从Gemfile中完全删除。

然后只需将.coffee文件重命名为普通.js,并在您的Rails应用中摇滚常规javascript。

答案 1 :(得分:2)

我认为重命名扩展不是好的解决方案。请尝试以下方法:

添加到Gemfile

gem 'coffee-script-source', '1.8.0'

然后,运行

bundle update coffee-script-source

并重新启动服务器(如果需要)