При вложенных маршрутах родительский контроллер или дочерний контроллер обрабатывает запрос на новое действие?

Если у вас есть вложенный ресурс, определенный следующим образом:

map.resources :magazines, :has_many => :ads.

для этих моделей:

class Magazine < ActiveRecord::Base 
  has_many :ads 
end 

class Ad < ActiveRecord::Base 
  belongs_to :magazine 
end

Когда вы вызываете этот URL:

/magazines/1/ads/1/new 

с помощником вложенного маршрута:

new_magazine_ad_path

Какой контроллер обрабатывает это действие new: контроллер magazines или контроллер ads?


person Joe O'Driscoll    schedule 05.10.2009    source источник


Ответы (2)


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

person Peter Wagenet    schedule 05.10.2009

Возможно, стоит прочитать раздел 3.8 в руководстве по маршрутизации, но если я прав (и как руководство предлагает) это контроллер Ads.

person Topher Fangio    schedule 05.10.2009
comment
В таблице в Разделе 3.8 непосредственно под примером показаны различные сопоставления URL-адресов и контроллеров, и есть один для /magazines/1/ads/new, который указывает на Ads в качестве контроллера. Я считаю, что это то, что вы спрашиваете. - person Topher Fangio; 06.10.2009
comment
Для большей ясности: я считаю, что /magazines/1/ads/new и /magazines/1/ads/1/new ведут к одному и тому же. Вы можете просто узнать, в какой рекламе был пользователь, когда он попросил создать новую со второй версией. - person Topher Fangio; 06.10.2009
comment
Спасибо. Я не заметил сопоставления контроллеров в таблице. - person Joe O'Driscoll; 06.10.2009