在Rails中,有一种方法可以在模型与控制器不匹配时获取表单的正确URL吗?

时间:2012-01-21 20:16:29

标签: ruby-on-rails rest crud

我有一个名为User的模型,以及一个名为ManagersController的控制器。某些用户是由字段标记的经理(role =“manager”)。我有一个或多或少的标准REST CRUD,但_form模板最终看起来像这样:

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

我有其他形式的一些非常相似的案例,我敢肯定我不是第一个遇到这种情况的人。有没有办法在没有三元运算符的情况下从@user生成正确的URL?

1 个答案:

答案 0 :(得分:1)

执行您所描述的逻辑的方法是polymorphic_url,它无法按照您的建议进行操作。

您可能想为此创建自己的帮助器方法,或者创建一个实际上称为“Manager”的子类。

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

您选择哪一个取决于您无法帮助您的应用程序的详细信息。