我怎样才能完全禁用Rails 3.1应用程序中的CoffeeScript?

当我生成一个新的控制器的时候,Rails也为控制器生成一个.js.coffee文件。 因为我不使用CoffeeScript,所以我想让Rails为我生成.js文件。

在Rails 3.1应用程序中完全禁用CofeeScript是否足以将coffee-rails gem注释掉?

  1. 在您的Gemfile中注释gem "coffee-script"
  2. 使用.js而不是.js.coffee作为你的javascript文件

不知道这是否代表Rails 3.1,但是在4中,您还应该将javascript_engine设置为:js application.rb :js来指示生成器创build.js文件而不是.js.coffee

 config.generators do |g| # .. other configuration .. g.javascript_engine :js end 

Koen和Gaurav Gupta有很好的答案!

如果您想为每个新的Rails项目自动进行这些更改,则可以使用模板文件。

~/rails-template.rb

 # Don't install coffeescript gsub_file 'Gemfile', /^gem \'coffee-rails\'/ do "\# gem 'coffee-rails'" end # Mess with generators to get the behavior we expect around new files # For these injections, indentation matters! inject_into_file 'config/application.rb', after: "class Application < Rails::Application\n" do <<-'RUBY' config.generators do |g| # Always use .js files, never .coffee g.javascript_engine :js end RUBY end 

然后在~/.railsrc

 -m ~/.rails-template.rb 

现在,无论何时运行rails new的coffeescript gem将被注释掉,新的控制器将使用.js而不是.coffee

testingRails 5.0.4,但我相信它也适用于早期版本。


另外, Rails模板和一般的生成器都非常强大。 我是一名教师,我的学生通常会在课程中创build15到20个rails项目,并为他们提供一个包含debugginggem,spec风格testing等的好的模板文件,这是一个巨大的节省时间的工具。 当然,他们自己做了一次修改。 如果你有兴趣,我的个人.rails-template.rb 在GitHub上 。

注意Rails 4,或者如果你正在使用“turbolinks”,“uglifier”或其他任何需要服务器解释javascript的gem,请将其注释掉。

我有这个问题,因为我正在使用codekit来编译我的coffeescript。

我通过将我的“assets / coffee”文件夹重命名为“assets / cafe”来解决这个问题,所以铁路公司找不到它。

编辑:什么工作(和唯一的事情对我来说,上述答案不起作用)是添加一个单独的文件夹“应用程序/咖啡”,并将其设置为编译到资产/ JavaScript文件夹。 如果它在资产目录中,无论名称如何,rails都会find它。