rails gで不要なファイルが生成される・・・
Railsで開発する際に、rails gコマンドは欠かせないと思います。
しかし、特にscaffoldやcontrollerの生成時には不要なファイルが生成される場合があります。
例えば、apiを提供するアプリケーションにjsやcssのファイルは必要ありません。
config.generators
application.rbのconfig.generatorsでrails gで生成されるファイルを設定できます!
例えば、
- apiだからjsとかcssとかいらないな
- view_helperもいらないな
- viewのテンプレートエンジンもひとまずなしで
- viewとview_helperのテストはなくていい
- fixtureはfactory_girlがいいな。
であれば、こんな感じで設定します
application.rb
config.generators do |g|
g.stylesheets false
g.javascripts false
g.helper false
g.template_engine false
g.test_framework :rspec, view_specs: false, helper_specs: false, fixture: true
g.fixture_replacement :factory_girl, dir: "spec/support/factories"
end
実行結果はこんな感じ。
> rails g controller hoge/users index
create app/controllers/hoge/users_controller.rb
route get "users/index"
invoke rspec
create spec/controllers/hoge/users_controller_spec.rb
invoke assets
invoke js
invoke css
もちろん、テンプレートエンジンにerbを使いたければ
application.rb
g.template_engine :erb
と書けば生成されます。
この設定を使っているプロジェクトはテンプレートエンジンとしてrablを使用しているのですが、rablはどうも認識されないもよう・・・
config.generatorsを設定してスマートなシステムを作りましょう!
さらに詳しい説明
ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Creating and Customizing Rails Generators