LoginSignup
0
0

【Rails】rails generate controllerで生成されるファイルを制限する【Railsアプリ全体のジェネレータ設定変更】

Posted at

※この記録は、プログラミング初学者である私が、行き詰まったり難しいと思ったりしたものを復習できる様にとして残している自分メモです。同じ様なところでつまずいている方のお役に立つことができれば尚よし。間違った記載等あれば教えていただければありがたいです。

はじめに

いろんなファイルを自動作成してくれる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つのファイルだけに。
2023-12-26 14.02の画像.jpeg
生成ファイルの制限成功!

ちなみにターミナルで操作するにあたって

bin/rails g controller boards

でファイルを生成できる(migrate)のに対して

bin/rails d controller boards

で先ほどの生成ファイルを削除できる(destroy)。

0
0
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
0
0