Устав от перестройки всех моих стандартных моделей, видов и контроллеров, я решил создать собственные шаблоны в виде контуров для различных блогов / вопросов SA и т. Д. c.
Я создал:
/lib/templates/active_record/model.rb
/lib/templates/rails/scaffold_controller/controller.rb
/lib/templates/erb/scaffold/_form.html.erb.tt (and so on for the actions etc.)
Я добавил это в свой config/application.rb
файл:
config.generators do |g|
g.orm :active_record
g.template_engine :erb
g.test_framework :test_unit, fixture: true
g.skip_routes true
end
Затем запустил скаффолд:
rails g scaffold MyModel name description notes:text flag_active:boolean slug company_id:integer
Running via Spring preloader in process 52960
invoke active_record
create db/migrate/20200130165523_create_my_models.rb
create app/models/my_model.rb
invoke test_unit
create test/models/my_model_test.rb
create test/fixtures/my_models.yml
invoke resource_route
route resources :my_models
invoke inherited_resources_controller
create app/controllers/my_models_controller.rb
invoke erb
create app/views/my_models
create app/views/my_models/index.html.erb
create app/views/my_models/edit.html.erb
create app/views/my_models/show.html.erb
create app/views/my_models/new.html.erb
create app/views/my_models/_form.html.erb
invoke test_unit
create test/controllers/my_models_controller_test.rb
create test/system/my_models_test.rb
invoke helper
create app/helpers/my_models_helper.rb
invoke test_unit
invoke jbuilder
create app/views/my_models/index.json.jbuilder
create app/views/my_models/show.json.jbuilder
create app/views/my_models/_my_model.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/my_models.coffee
invoke scss
create app/assets/stylesheets/my_models.scss
Проблема заключается в том, что шаблоны модели и контроллера не используются и представления работают нормально.
Я нашел этот пост Scaffolding Rails4 Пустой контроллер с подробным описанием того, что активный админ (который я использую) использует inherited_resources_controller
. Я предполагаю, что это является частью проблемы, но я не знаю, как это исправить. Кажется, я не могу найти очевидное решение, размещенное где-либо еще.
ОБНОВЛЕНИЕ
{ ссылка }
Модель шаблон должен быть в:
/lib/templates/active_record/model/model.rb
И шаблон контроллера должен быть:
/lib/templates/rails/inherited_resources_controller/controller.rb
Мой обновленный вопрос будет тогда, почему рельсы используют inherited_resources_controller
против scaffold controller
и можно это исправить?