Можно ли указать именованный маршрут в ресурсоемком маршруте? - PullRequest
0 голосов
/ 30 марта 2011

Я просто обновляю свое приложение до Rails 3, и, так как мне все равно приходится переписывать свою маршрутизацию, я трачу некоторое время на улучшение именованных маршрутов.

У меня есть контроллер счетов, в котором есть корзинадействие (/ invoices / trash перечисляет все счета в корзине).Я хочу получить доступ к этому через именованный маршрут (т.е. trash_url) для простоты моих представлений.

Я могу достичь этого достаточно легко с помощью следующих

match "/invoices/trash" => "invoices#trash", :as => :trash

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

resources :invoices do
  collection do
    get :trash, :as => :trash
  end
end

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

Спасибо.

1 Ответ

2 голосов
/ 30 марта 2011

Метод, который вы перечислили (показан ниже), прекрасно работает для меня, он генерирует вспомогательные методы trash_invoices_path и trash_invoices_url.

resources :invoices do
  collection do
    get :trash, :as => :trash
  end
end

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

...