rails generate で余分なファイルが生成されないようにする

Rails5.2.1バージョン確認している。

rails generategenerategに省略可能)コマンドを使うとモデルやコントローラーを生成することが出来るが、CoffeeScriptのように不要なファイルもある。
特に手早くサンプルを作ったり学習目的でアプリを作ったりする場合、付随するファイルは何も要らないことも多い。

そのようなときは設定ファイルにその旨を書いておくことで、余分なファイルが生成されないようにすることが出来る。

具体的には、config/application.rbに書かれているApplicationクラスに下記のコードを追加する。

config.generators do |g|
  g.stylesheets false
  g.javascripts false
  g.helper false
  g.test_framework false
end

これによってどんな変化が発生するか、比較してみる。

まずはモデル。
$ rails g model PostPostというモデルを作る。

設定をしなかった場合は以下のファイルが作られる。

app/models/post.rb
db/migrate/xxx_create_posts.rb
test/fixtures/posts.yml
test/models/post_test.rb

設定した場合は以下。

app/models/post.rb
db/migrate/xxx_create_posts.rb

必要最低限なファイルだけ作られているのがわかる。

次は$ rails g controller Postsでコントローラーを作る。

設定しなかった場合。

app/assets/javascripts/posts.coffee
app/assets/stylesheets/posts.scss
app/controllers/posts_controller.rb
app/helpers/posts_helper.rb
test/controllers/posts_controller_test.rb

設定を書いておくと、コントローラーだけが生成される。

app/controllers/posts_controller.rb

参考資料