有没有办法在脚手架生成器完成后触发我自己的生成器?
类似的东西rails g scaffold HighScore game:string score:integer会触发 my_generator 创建的rails generate generator my_generator
有没有办法在脚手架生成器完成后触发我自己的生成器?
类似的东西rails g scaffold HighScore game:string score:integer会触发 my_generator 创建的rails generate generator my_generator
我用另一种方式解决了这个问题。
本来我的想法是:
您可以按照文档所述自定义脚手架工作流程
所以我定义了一个像这样的脚手架生成器
config/application.rb
# resource_controller defines which generator to use
# for generating a controller when using rails generate the resource.
# Defaults to :controller.
# scaffold_controller different from resource_controller, defines which generator
# to use for generating a scaffolded controller when using rails generate scaffold.
# Defaults to :scaffold_controller.
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"
end
如您所见,我只更改gen.scaffold_controller了适合我的问题的。但我认为也可以选择更改脚手架模型生成器。
然后我为我的生成器创建了一个文件夹lib/generators/rails/controller_with_smart_listing/
我不记得我是如何生成这个结构的,但我在存储库中共享文件