##はじめに
generateコマンドっていろんなファイルを作成してくれるけど、「helperファイルの自動生成は必要ないのになー」って時などには、かえって煩わしく感じますよね。
そこで今回は、config/application.rb
内の設定によって、generate コマンドで生成されるファイルに制限をかけます。(※スキップオプションを付ける方法もあるけど省略)
##まずはrails generation時の挙動を確認
ターミナルでrails generation(rails gに省略可)
を行うと、色々なファイルが自動生成される。
> rails g controller user show
Running via Spring preloader in process
create app/controllers/user_controller.rb
route get 'user/show'
invoke erb
create app/views/user
create app/views/user/show.html.erb
invoke rspec
create spec/controllers/user_controller_spec.rb
create spec/views/user
create spec/views/user/show.html.erb_spec.rb
invoke helper
create app/helpers/user_helper.rb
invoke rspec
create spec/helpers/user_helper_spec.rb
invoke assets
invoke js
create app/assets/javascripts/user.js
invoke scss
create app/assets/stylesheets/user.scss
便利だけど、必要ないファイルがあれば、それだけ生成されないようにする。
(この自動生成したファイル等を削除したければ、ターミナルでrails destroy controller user show
を実行しておく)
##自動生成するファイルに制限をかける
今回は、config/application.rb
内の設定で、
・assetsファイル
・testファイル
・ルーティング
の生成を無効にしてみる。
puts class Application < Rails::Application
#以下のように、generateコマンド時に生成されるファイルに制限をかける
config.generators do |g|
g.assets false
g.test_framework false
g.skip_routes true
end
end
上記の設定によって、
> rails g controller user show
Running via Spring preloader in process 82700
create app/controllers/user_controller.rb
invoke erb
create app/views/user
create app/views/user/show.html.erb
invoke helper
create app/helpers/user_helper.rb
生成ファイルに制限がかかった。
このように、プロジェクトごとに設定を変えたり、自分好みのカスタマイズができる。
##おわりに
今回が初のQiita投稿でした!
これからも新しく学んだこと等をQiitaに共有できればと思います。
ご覧いただきありがとうございました。