Если вам нужно только одно или два действия, я бы рекомендовал хранить все это в одном контроллере. Не нужно делать вещи слишком сложными. Если вам нужен полный набор действий REST для каждого контроллера, вот пример того, как я бы это сделал:
Допустим, у вас есть сайт событий, на котором также есть группы. События могут быть созданы, отредактированы и т. Д. В контексте группы или полностью самостоятельно. Давайте посмотрим на пару URL-адресов, для которых потребуются полные действия REST для каждого:
/groups/1/events # Lists all events associated with a group
/events # Lists all events
Настройте маршруты следующим образом:
resources :events
resources :groups do
resources :events, :controller => 'groups/events'
end
Теперь у вас будет два контроллера. Один живет в app/controllers/events_controller.rb
, а другой в app/controllers/groups/events_controller.rb
Последней важной деталью является пространство имен второго контроллера:
class Groups::EventsController < ApplicationController
Вы можете сделать это, используя рельсы, встроенные в генераторы:
rails g controller 'groups/events'