Ruby On Rails: как правильно именовать вложенный контроллер и просматривать - PullRequest
0 голосов
/ 04 июля 2018

Вы можете подумать, что это глупый вопрос. Но для меня, как для начинающего, это было совершенно необходимо.

Я создал некоторый контроллер, использующий скаффолд, и который является правильным способом именования вложенного ресурса. rails g scaffold schedule/event вывод:

  • models / schedule.rb
  • модель / график / event.rb
  • controllers / schedule / events_controllers.rb
  • просмотр / расписание / События /

или rails d scaffold schedules/event

  • models / schedules.rb
  • модель / расписание / event.rb
  • controllers / schedule / events_controllers.rb
  • просмотр / расписание / событие /

Спасибо, и если вы можете дать мне несколько ссылок и почему вы выбираете ответ между этими двумя, это будет полезно:)

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Названия моделей всегда должны быть единичными, контроллеры множественными. В противном случае вы можете столкнуться с проблемами при маршрутизации. Кроме того, в вашем вопросе вывод rails g scaffold schedule/event должен выглядеть примерно так:

❯ rails g scaffold schedule/event
Running via Spring preloader in process 1938
      invoke  active_record
      create    db/migrate/20180704090256_create_schedule_events.rb
      create    app/models/schedule/event.rb
      create    app/models/schedule.rb
      invoke    test_unit
      create      test/models/schedule/event_test.rb
      create      test/fixtures/schedule/events.yml
      invoke  resource_route
       route    namespace :schedule do
    resources :events
  end
      invoke  scaffold_controller
      create    app/controllers/schedule/events_controller.rb
      invoke    erb
      create      app/views/schedule/events
      create      app/views/schedule/events/index.html.erb
      create      app/views/schedule/events/edit.html.erb
      create      app/views/schedule/events/show.html.erb
      create      app/views/schedule/events/new.html.erb
      create      app/views/schedule/events/_form.html.erb
      invoke    test_unit
      create      test/controllers/schedule/events_controller_test.rb
      invoke    helper
      create      app/helpers/schedule/events_helper.rb
      invoke      test_unit
      invoke    jbuilder
      create      app/views/schedule/events/index.json.jbuilder
      create      app/views/schedule/events/show.json.jbuilder
      create      app/views/schedule/events/_schedule_event.json.jbuilder
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/schedule/events.coffee
      invoke    scss
      create      app/assets/stylesheets/schedule/events.scss
      invoke  scss
      create    app/assets/stylesheets/scaffolds.scss

Обратите внимание app/controllers/schedule/events_controller.rb и на то, что только имя сущности во множественном числе.

Rails использует инфлектор для создания формы множественного числа, если вы пропустите этот процесс, некоторые вещи могут работать не так, как вы ожидаете.

Как правило, всегда используйте единственное число при строительстве лесов.

Это также может дать вам некоторое представление

0 голосов
/ 04 июля 2018

Насколько я знаю, множество пространств имен не имеет значения, поэтому оба они технически верны.

schedules/event больше похоже на традиционный маршрут Rails, поэтому я бы порекомендовал это лично. Но я не думаю, что это должно повлиять на какой-либо функциональный аспект приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...