Ruby on rails 3.1 rails 3.1,为什么我的咖啡脚本不起作用?

Ruby on rails 3.1 rails 3.1,为什么我的咖啡脚本不起作用?,ruby-on-rails-3.1,coffeescript,Ruby On Rails 3.1,Coffeescript,我试图在我的rails 3.1项目中测试coffee脚本,但它没有被执行,也没有在application.js中作为javascript生成 我有一个控制器页面,这里是pages.js.coffee: test = (input) -> alert input test 'hello' 但这个警报永远不会在, 事实上,application.js只是空的 以下是GEM文件,以防对您有所帮助: source 'http://rubygems.org' gem 'rails', '3

我试图在我的rails 3.1项目中测试coffee脚本,但它没有被执行,也没有在application.js中作为javascript生成

我有一个控制器
页面
,这里是pages.js.coffee:

test = (input) ->
  alert input

test 'hello'
但这个警报永远不会在, 事实上,application.js只是空的

以下是GEM文件,以防对您有所帮助:

source 'http://rubygems.org'

gem 'rails', '3.1.0'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem 'devise', '1.4.8'

gem 'will_paginate', '~> 3.0.2'

#gem 'nested_form', :git => 'git://github.com/fxposter/nested_form.git'

gem "simple_form"

gem 'kaminari'

gem 'foreigner'

gem "cocoon"

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end

gem "jquery-rails"

gem 'coffee-script'
gem 'haml'
# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end
编辑

我也添加了这些gem并安装了它们,但是,没有执行coffee脚本

gem 'therubyracer'


gem 'coffee-script-source'
gem 'json'
gem 'execjs'
第一:在你的资产组中有“咖啡架”就足够了。旧版本在:资产组中有“咖啡脚本”

第二:你的
*.js.coffee
文件放在哪里?您需要确保它们位于某个地方的“资产”文件夹中。从
app/assets/javascripts
开始。如果它们不在您的资产文件夹中,它们将无法进入资产管道

如果您已经这样做了,请考虑启动一个新项目并使用默认配置。它应该能正常工作。将工作项目与非工作项目进行比较


如果所有这些都失败了,您是否可以在GitHub上与我们共享您的项目?

请检查您的配置/application.rb,您应该可以找到如下部分:

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
 Bundler.require(*Rails.groups(:assets => %w(development test)))
 # If you want your assets lazily compiled in production, use this line
 #Bundler.require(:default, :assets, Rails.env)
结束


我怀疑您没有在部署时预编译资产,即使您已将其设置为忽略资产宝石。

谢谢您的好主意!我已经创建了一个新项目,并注意到了其中的差异,在我的application.js中,“//=require_树。”只是缺少了!^^^对我来说也是这样。在转换到3.1之后,忘记将这些需求添加到application.js的顶部