RailsのScaffoldをカスタマイズする方法
March 13, 2020
Rails は様々なジェネレーターを利用することができます。利用できるジェネレーターのリストはrails generate
で確認することができます。
ジェネレータの一つであるscaffold
をカスタマイズして、不要なファイルを生成しないようにします。
Settings
generators 用の initializers ファイルを作成します。config/initializers
配下の.rb
のファイルは自動的に読み込まれます。
touch config/initializers/generators.rb
config/initializers/generators.rb
Rails.application.config.generators do |g|
g.helper false
g.javascripts false
g.resource_route false
g.stylesheets false
g.scaffold_stylesheet false
g.system_tests nil
g.test_framework :rspec
g.template_engine :slim
g.channel assets: false
end
※ test_framework は rspec, template_engine は slim を利用しています。導入方法は以下をご覧ください。
Option
Option | default | 意味 |
---|---|---|
assets | true | scaffold 時に生成するかどうか |
force_plural | false | モデル名を複数形にするかどうか |
helper | true | helper を生成するかどうか |
integration_tool | :test_unit | 結合テストの生成に使う統合ツール |
system_tests | :test_unit | システムテスト生成に用いる統合ツール |
orm | false | OR マッパーを指定。false の場合は Active Record |
resource_controller | :controller | rails generate resource の実行時にどのジェネレータでコントローラを生成するか |
resource_route | true | リソースのルーティング定義を生成すべきかどうか |
scaffold_controller | :scaffold_controller | rails generate scaffold の実行時にどのジェネレータでコントローラを生成するか |
stylesheets | false | スタイルシートのフックを行なうかどうか |
stylesheet_engine | :css | アセット生成時に使われる、sass などのスタイルシートエンジンを指定 |
scaffold_stylesheet | false | scaffold.css を作成するかどうか |
test_framework | false | 利用するテストフレームワーク。false の場合は Minitest |
template_engine | :erb | ビューのテンプレートエンジンを指定 |