0

相当于match 'aliased/route/here' => 'pointed/route/here'什么?

我在这里把头撞到墙上,因为我无法让 Devise 为同一模型使用不同的登录 url。如果有人对此问题有提示,我将不胜感激!

我的路线的当前版本如下所示:

auth.devise_for :somerole,    :class_name => 'MainRole', :as => 'niceurl'
auth.devise_for :anotherrole, :class_name => 'MainRole', :as => 'otherurl'

但该:class_name选项并非所有工作:我仍然需要为我定义的每个角色创建所有适当的助手。

我目前在 Rails 2.3.8 环境中使用 Devise 1.x,这就是为什么 Github 上提供的解决方案和其他问题中提到的解决方案不起作用的原因。

提前致谢!

更新

好的,所以我找到了让 Devise 工作的解决方法:我在其中创建了一个方法,application_controller它收集我所有不同的角色并将其分配给 mainrole,如下所示:

def current_mainrole
  current_somerole || current_anotherrole
end

我担心它可能会引入一些安全漏洞,而且它看起来真的像一个黑客,所以我希望仍然有人可以帮助我解决路由问题。

4

1 回答 1

0

2.3.8 中的等价物是

map.contact '/contact', :controller => 'pages', :action => 'contact'

因此,您可以根据需要定制生产线。

查看这些链接以进一步阅读:
Ruby on Rails Tutorial 2.3
Ruby on Rails Guides 2.3.8

希望我有所帮助。

于 2012-04-18T14:58:28.660 回答