5
5

More than 3 years have passed since last update.

rails generateコマンドで不要なファイルを生成しない

Posted at

はじめに

rails generate ...は必要な関連ファイルを自動生成してくれる便利なコマンドですが、「このファイルは不要だな」というものがあった場合、生成する度に削除していては手間がかかります。

そこで、自動生成するファイルを設定する(不要なファイルは生成しない)方法について書いています。

参考までに環境はこちら。

  • Ruby 2.5.1
  • Rails 5.2.4

generateコマンドで自動生成されるファイル

まず、どのコマンドでどのファイルが自動生成されるかを次の一覧にまとめています。

コマンド名 コントローラ ビュー モデル マイグレーション アセット ルート テスト ヘルパー
scaffold
scaffold_controller × × × ×
controller × ×
model × × × × ×
migration × × × × × ×

application.rbを編集する

設定方法は簡単で、application.rbに設定を書き込めばOKです。

例えば何も設定せず次のコマンドを打った場合、

rails g controller StaticPages home

次のファイルが生成されます。

      create  app/controllers/static_pages_controller.rb
       route  get 'static_pages/home'
      invoke  erb
      create    app/views/static_pages
      create    app/views/static_pages/home.html.erb
      invoke  test_unit
      create    test/controllers/static_pages_controller_test.rb
      invoke  helper
      create    app/helpers/static_pages_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/static_pages.coffee
      invoke    scss
      create      app/assets/stylesheets/static_pages.scss

ここで、以下のファイルが不要だと思ったとします。

  • CSS, JavaScriptファイル
  • testファイル

その場合、次のように設定します。

module XXX
  class Application < Rails::Application
    config.load_defaults 5.2

    config.generators do |g|  # ここから追記
      g.assets false          # CSS, JavaScriptファイル生成せず
      g.skip_routes false     # trueならroutes.rb変更せず、falseなら通常通り変更
      g.test_framework false  # testファイル生成せず
    end                       # ここまで
  end
end

ちなみにg.assetsは、g.javascriptsg.stylesheetsに分けて記述することもできます。

この状態で再度rails generate ...を行うと、次のように生成されるファイルが減っていることがわかります。

      create  app/controllers/static_pages_controller.rb
       route  get 'static_pages/home'
      invoke  erb
      create    app/views/static_pages
      create    app/views/static_pages/home.html.erb
      invoke  helper
      create    app/helpers/static_pages_helper.rb

だいぶスッキリしました。以上。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5