在我生成新控制器的那一刻,Rails也为控制器生成.js.coffee
文件。由于我不使用CoffeeScript,我希望Rails为我生成.js
个文件。
是否足以注释掉coffee-rails
gem以完全禁用Rails 3.1应用程序中的CofeeScript?
答案 0 :(得分:61)
gem "coffee-script"
答案 1 :(得分:27)
不确定这是否适用于Rails 3.1,但在4中你还应该在javascript_engine
中将:js
设置为application.rb
,以指示生成器创建.js
个文件而不是{ {1}}。
.js.coffee
答案 2 :(得分:1)
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
。
在Rails 5.0.4上测试过,但我相信它也适用于早期版本。
另外,Rails templates和generators in general是超级强大的。我是一名教师,我的学生通常会在课程中创建15到20个铁轨项目,并为他们提供一个包含调试宝石,规格样式测试等的好模板文件,这是一个巨大的节省时间。当然,当他们自己做出改变之后。如果您有兴趣,我的个人.rails-template.rb
为on GitHub。
答案 3 :(得分:-1)
注意Rails 4,或者如果您正在使用'turbolinks','uglifier'或任何其他需要服务器解释javascript的gem,请将它们注释掉。
答案 4 :(得分:-4)
我遇到了这个问题,因为我正在使用codekit来编译我的coffeescript。
我通过将'assets / coffee'文件夹重命名为'assets / cafe'来解决这个问题,因此铁路无法找到它。
编辑:什么工作(以及对我有用的唯一的事情,上面的答案不起作用)是添加一个单独的文件夹'App / Coffee',并将其设置为编译到assets / javascript文件夹中。如果它位于assets目录中,则无论名称如何,rails都会找到它。