这是 lib / genrators / form
中的生成器类class FormGenerator < Rails::Generators::Base
source_root File.expand_path('templates', __FILE__)
source_root File.expand_path('templates', __dir__)
argument :model, type: :string
def create_template
template "models/form.template", "app/models/#{model}.rb"
template "controllers/forms_controller.template", "app/controllers/#{model}s_controller.rb"
template "javascript/api/form.template", "app/javascript/api/#{model}.js"
template "javascript/pages/component/forms.template", "app/javascript/component/#{model}s.vue"
template "javascript/pages/form/index.template", "app/javascript/pages/#{model}/index.vue"
template "javascript/pages/form/layout.template", "app/javascript/pages/#{model}/layout.vue"
template "javascript/store/actions/form.template", "app/javascript/store/actions/#{model}.js"
template "javascript/store/getters/form.template", "app/javascript/store/getters/#{model}.js"
template "javascript/store/modules/form.template", "app/javascript/store/modules/#{model}.js"
template "javascript/store/mutations/form.template", "app/javascript/store/mutations/#{model}.js"
end
end
这是输出:
rails g form test name:string
create app/models/test.rb
create app/controllers/tests_controller.rb
create app/javascript/api/test.js
create app/javascript/component/tests.vue
create app/javascript/pages/test/index.vue
create app/javascript/pages/test/layout.vue
create app/javascript/store/actions/test.js
create app/javascript/store/getters/test.js
create app/javascript/store/modules/test.js
create app/javascript/store/mutations/test.js
我想要这个生成器,生成db / migrate中的迁移文件
我已经尝试了这些东西,但没有成功:
class FormGenerator < Rails::Generators::Base
include Rails::Generators::Migration
include ActiveRecord::Generators::Base
migration_template