Использование пользовательских шаблонов скаффолдов для моделей и контроллеров Rails? (`inherited_resources_controller` против` контроллера scaffold`) - PullRequest
1 голос
/ 30 января 2020

Устав от перестройки всех моих стандартных моделей, видов и контроллеров, я решил создать собственные шаблоны в виде контуров для различных блогов / вопросов 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 и можно это исправить?

1 Ответ

0 голосов
/ 07 апреля 2020

Покрыты:

https://github.com/activeadmin/activeadmin/blob/master/docs/14-gotchas.md#rails -5-генераторов строительных лесов

и

https://github.com/activeadmin/inherited_resources/issues/195

Короче как то так:

Rails.application.config.generators do |g|
  g.scaffold_controller :scaffold_controller
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...