Rails generate コマンドで生成するファイルを限定する方法

はじめに

rails g ~コマンドを使用すると、新しくコントローラーやモデルを作成することができ、それに付随して様々なファイル(erb、view、helper)を作成してくれます。
その際、「不要なファイルは予め生成して欲しくないな〜。」って時の解決法です。

デフォルトで生成されるファイル(controllerの場合)
$ rails g controller Users now show

Image from Gyazo

Usersコントローラーの他にヘルパー、viewファイルなどを作成してくれているのが分かります。

今回はassets(css,javascript),test,helperファイル、ルーティングを自動生成しないようにしていきます。

config/application.rbに設定を追加する

Rails アプリケーションを設定する - Railsガイド

Railsガイドを見ると、config/application.rb内でconfig.generatorsメソッドを使用するように書いてあります。

config/aplication.rb
・・・
module MyProject
  class Application < Rails::Application #<= Rails::Applicationを継承している!!
    config.load_defaults 5.2 
  
    #ここからです
    config.generators do |g|
      g.assets false    # <= css,javascriptファイルを作成しない
      g.helper false    # <= helperファイルを作成しない
      g.test_framework false  # <= テストファイルを作成しない
      g.skip_routes true  # <= routes.rbを変更しない
    end
  # ここまでです
    config.generators.system_tests = nil 
  end
end

$ rails g controller Users now show を再度行ってみると...

Image from Gyazo

コントローラーとerbのみ作成してくれているのが分かります!!