【问题标题】:Rails 2.3.8 routing equivalent of Rails 3 matchRails 2.3.8 路由等效于 Rails 3 匹配
【发布时间】:2012-04-18 14:47:10
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails routing devise ruby-on-rails-2


    【解决方案1】:

    2.3.8 中的等价物是

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

    因此您可以根据自己的需要定制生产线。

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

    希望我能帮上忙。

    【讨论】:

    • 我对命名路由很熟悉,但是不幸的是,使用 Devise 它比仅仅指向一个控制器和动作要复杂一些。 Devise 还考虑了您正在使用的 url 来命名助手和东西,所以我真的想将一个 url 指向另一个。
    • 我的道歉。我使用的小工具是 Rails 3,我决定自己编写。对我来说这是一个糟糕的假设......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2011-06-16
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多