※この記録は、プログラミング初学者である私が、行き詰まったり難しいと思ったりしたものを復習できる様にとして残している自分メモです。同じ様なところでつまずいている方のお役に立つことができれば尚よし。間違った記載等あれば教えていただければありがたいです。
はじめに
いろんなファイルを自動作成してくれるgenerateコマンド。しかし初期段階では何から何まで自動生成されると煩わしさを感じるものもあるからRailsにはジェネレーター実行時にファイルを生成しない為の設定も用意されている。
今回は、config/application.rb内の設定によって、generate コマンドで生成されるファイルに制限をかけようかと。
rails generation時の挙動を確認
ターミナルでrails generation(またはrails g)を実行。
下記の様な色々なファイルが自動生成される。
$ bin/rails g controller boards
Running via Spring preloader in process 26592
[+] Running 2/0
⠿ Container v3_basic_rails_basic-chrome-1 Running
⠿ Container v3_basic_rails_basic-db-1 Running
create app/controllers/boards_controller.rb
invoke erb
create app/views/boards
invoke rspec
create spec/requests/boards_spec.rb
invoke helper
create app/helpers/boards_helper.rb
invoke rspec
create spec/helpers/boards_helper_spec.rb
ほら、いっぱい。
便利だけど、必要ないファイルがあれば、それだけ生成されないようにしたい。
(ちなみに自動生成したファイルについては、rails destroyコマンドで元に戻せる)
今回は、
・helperファイル
・testファイル
・ルーティング
のファイルの自動生成を無効にしてみる。
生成ファイルの制限をかけるには
config/application.rbのクラス内に、以下のようにコードを記述する。
config.generators do |g|
g.skip_routes true
g.test_framework nill
g.helper false
end
上記の設定によって、生成されたのはこの2つのファイルだけに。
生成ファイルの制限成功!
ちなみにターミナルで操作するにあたって
bin/rails g controller boards
でファイルを生成できる(migrate)のに対して
bin/rails d controller boards
で先ほどの生成ファイルを削除できる(destroy)。