新しいコントローラーを生成するとき、Railsもコントローラーの.js.coffee
ファイルを生成します。CoffeeScriptを使用しないので、Rails代わりに、.js
ファイルを生成します。
Rails 3.1アプリでCofeeScriptを完全に無効にするには、coffee-Rails
gemをコメント化するだけで十分ですか?
gem "coffee-script"
Gemfile内これがRails 3.1に該当するかどうかはわかりませんが、4では、javascript_engine
を:js
にapplication.rb
に設定して、.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
を使用するようになります。
Rails 5.0.4でテストされていますが、以前のバージョンでも動作するはずです。
余談ですが、 Railsテンプレート と ジェネレーター一般 は非常に強力です。私は教師です。生徒は通常、コースを通じて15〜20のRailsプロジェクトを作成します。デバッグ用の宝石やスペックスタイルのテストなどを含む優れたテンプレートファイルを彼らに提供することは非常に大きなことです。タイムセーバー。もちろん、彼ら自身が一度変更を加えた後、興味があれば、私の個人的な.Rails-template.rb
は GitHubで です。