web-dev-qa-db-ja.com

Rails 3.1アプリでCoffeeScriptを完全に無効にするにはどうすればよいですか?

新しいコントローラーを生成するとき、Railsもコントローラーの.js.coffeeファイルを生成します。CoffeeScriptを使用しないので、Rails代わりに、.jsファイルを生成します。

Rails 3.1アプリでCofeeScriptを完全に無効にするには、coffee-Rails gemをコメント化するだけで十分ですか?

39
K Everest
  1. コメントアウトgem "coffee-script" Gemfile内
  2. JavaScriptファイルに.js.coffeeではなく.jsを使用する
61
Gaurav Gupta

これがRails 3.1に該当するかどうかはわかりませんが、4では、javascript_engine:jsapplication.rbに設定して、.jsではなく.js.coffeeファイルを作成するようにジェネレーターに指示する必要があります。

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

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.rbGitHubで です。

1
Dan