在生成rails g scaffold HighScore game:string score:integer
之类的新议程时,factory_bot生成器会创建文件spec/factories/high_scores.rb
。
...
invoke factory_bot
create spec/factories/high_scores.rb
...
我想定制那个生成器,所以我写自己的一个。但是我不知道将新模板保存在哪里,因此脚手架生成器可以使用它。
我尝试过:
lib/templates/rspec/factory_bot.rb
lib/templates/rspec/scaffold/factory_bot.rb
或者我自己的生成器:
lib/generators/rails/factory_bot_changes
lib/generators/rails/factory_bot_changes/USAGE
lib/generators/rails/factory_bot_changes/factory_bot_changes_generator.rb
lib/generators/rails/factory_bot_changes/templates
lib/generators/rails/factory_bot_changes/templates/factory_bot.rb
我还试图更改config/application.rb
config.generators do |gen|
gen.orm :active_record
gen.template_engine :haml
gen.test_framework :rspec,
fixtures: true,
view_specs: true,
helper_specs: true,
routing_specs: true,
controller_specs: true,
request_specs: true
gen.helper :helper_and_policy
gen.scaffold_controller :controller_with_smart_listing
gen.fixture_replacement :factory_bot, dir: "spec/factories"
# gen.fixture_replacement :factory_bot_changes, dir: "spec/factories"
gen.factory_bot false
end
但是似乎没有任何作用。
我应该在哪里保存新模板,或者在脚手架完成后如何触发自己的生成器来替换文件?