rails newした後はgeneratorの設定を忘れずに

こんにちは!kossyです!



さて、今回はrailsのgeneratorの設定手順をブログに残したいと思います。




環境
Rails 5.1.6
Ruby 2.5.1
MacOS Mojave





config/application.rbをちょろっと弄るだけ
以下のコードでは、
・テンプレートはhaml
・テストフレームワークRspecに準拠したファイルを生成、fixtureはいらん
・scssファイルはいらん
・coffee.scriptもいらんよ

config.generators do |g|
  g.template_engine :haml
  g.test_framework  :rspec, fixture: false
  g.stylesheets     false
  g.javascripts     false
end

っていう設定になります。



Rails5以降は少し違う書き方らしい

qiita.com


railsのgeneratorの設定を変更したいときに、Rails 4まではapplication.rbに書くことで変更していた。しかし、Rails 5では違う。 application.rb には以下のように書いてある。

application.rb
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.

雑に意訳すると、「ここで書いた設定よりも環境ファイルで書かれたことを優先するよ。アプリケーション全体の設定なら、 config/initializers にファイル作るべき。そのディレクトリにおいておけば自動的に読み込んでくれるよ。」とのこと。

らしいので、

config/initializers/generators.rb



Rails.application.config.generators do |g|
  ここに設定を追記する
end

こっちのファイルに記述する方が推奨されてるみたいです。





参考にさせていただいた記事
【小ネタ】Rails 5におけるconfig.generatorsの書き方 - Qiita
rails newしたらconfig.generatorsをまず設定しよう - Qiita
Rails ジェネレータとテンプレート入門 | Rails ガイド