未経験エンジニア

【Rails】rails g controllerで不要ファイルを作成しない方法

「rails g controller コントローラー名」で、現時点では使わないのに余分なファイルが作成されてしまったことがあると思います。これから、rails g controllerで不要で余分なファイルを作成しない方法をご紹介します。

本記事は、個人メモとしてプログラミング知識を纏めています。

現在のバージョンや仕様に対応していない可能性もあります。

その点、ご了承ください!

何がしたかったか?

マークアップだけを行いたい。

モデルとビューに関わるファイルだけが欲しい。

知識

rails g controller コントローラー名:作成

rails d controller コントローラー名:削除

※間違っても消せますのでご安心を!

参考:railsコマンドドキュメント

スポンサーリンク



不要なファイルを作成しない方法

現状

何も設定しない場合は、以下のようなファイルが作成されます。

今回はrecordsコントローラーを作っています。

ターミナルで、rails g controller recordsを実行します。

【実行結果】

create app/controllers/records_controller.rb
invoke haml
②create app/views/records
invoke test_unit
③create test/controllers/records_controller_test.rb
invoke helper
④create app/helpers/records_helper.rb
invoke test_unit
invoke assets
invoke coffee
⑤create app/assets/javascripts/records.coffee
invoke scss
⑥create app/assets/stylesheets/records.scss

方法

今回、私がマークアップで使用したいのは①、②、⑥だけです。

records_controller_test.rb(テスト)

records_helper.rb(ヘルパー)

javascripts/records.coffee(javascript)

を、作成しない記述を以下の設定で行います。

【設定】

config/application.rbファイルを以下のように編集してください。

module アプリケーション名(キャメル)
 classApplication < Rails::Application
  config.generators do |g|
   g.test_framework false(テストを作成しない)
   g.helper false(ヘルパーを作成しない)
   g.javascripts false(javascriptを作成しない)
  end
 end
end

【ターミナル実行結果】

①create app/controllers/records_controller.rb
invoke haml
②create app/views/records
invoke assets
invoke coffee
invoke scss
⑥create app/assets/stylesheets/records.scss

補足

stylesheetsが不要な場合は、「g.stylesheets false」を追記する。

stylesheetsとjavascriptsのいずれも不要な場合は、「g.assets」を追記する。