Использование вложенных маршрутов Rails 3 без фактического разрешения доступа к родительскому ресурсу - PullRequest
21 голосов
/ 15 марта 2011

Я использую Rails 3 и у меня есть две модели EquipmentGroup и Reservation. Я хочу, чтобы резервирование было вложенным ресурсом групп оборудования, чтобы я мог получить к ним доступ с помощью URL-адресов, таких как:

/equipment_groups/:equipment_group_id/reservations/:id

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

resources :equipment_groups, :only => [] do
  resources :reservations
end

Есть ли лучший способ сделать это? Кажется, я не могу легко найти ответ в документации.

Ответы [ 2 ]

8 голосов
/ 12 июня 2015

Ваш подход - это стандартный подход, лучше нет ничего.

1 голос
/ 01 сентября 2011

Я могу придумать несколько способов сделать это.Одним из способов является то, что вы сделали выше.Однако кажется, что вам не нужно выставлять контроллер групп оборудования или какие-либо из его действий, поэтому следующее должно работать нормально:

scope "/equipment_groups" do
    resources :reservations
end

Блок scope добавит "/ equipment_groups"каждый маршрут в нем.По сути, это «подделка» вложенного маршрута.

...