2009-10-05 3 views
0

Если у вас есть вложенный ресурс, определенный как это:С помощью вложенных маршрутов родительский контроллер или дочерний контроллер обрабатывает запрос на «новое» действие?

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?

ответ

3

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

1

Возможно, вы прочитаете раздел 3.8 на routing guide, но если я прав (и, как подсказывает руководство), это контроллер Ads.

+0

В таблице в разделе 3.8, непосредственно приведенной в примере, показаны различные URL-адреса для сопоставлений с контроллерами, а для «/ журналы/1/объявления/новые» указывается «Реклама» в качестве контроллера. Я считаю, что это то, о чем вы просите. –

+0

Чтобы быть немного яснее: я считаю, что маршрут «/ журналы/1/объявления/новый» и «/ журналы/1/реклама/1/новый» относится к тому же. Вы можете просто узнать, какое объявление было у пользователя, когда они попросили создать новый со второй версией. –

+0

Спасибо. Я не заметил сопоставления контроллеров в таблице. –