Есть ли способ, в Rails, получить правильный URL для формы, когда модель не соответствует контроллеру? - PullRequest
2 голосов
/ 22 января 2012

У меня есть модель с именем User и контроллер с именем ManagersController. Некоторые пользователи являются менеджерами, помеченными полем (role = "manager"). У меня более или менее стандартный REST CRUD, но шаблон _form в итоге выглядел так:

= form_for(@user, :url => @user.new_record? ? managers_url : manager_url(@user))

У меня есть очень похожие случаи в других формах, и я уверен, что я не первый, кто сталкивается с этим. Есть ли способ создать правильный URL-адрес из @user без использования троичного оператора?

1 Ответ

1 голос
/ 22 января 2012

Метод, который описывает логика, которую вы описываете: polymorphic_url, и он не может делать то, что вы предлагаете.

Возможно, вы захотите создать для этого собственный вспомогательный метод или создать подкласс, который на самом деле называется «Менеджер».

class Manager < User
  default_scope where(:role => "manager")
end

Какой из них вы выберете, зависит от деталей вашего заявления, с которыми я не могу вам помочь.

...