0

我在使用 Devise 时遇到了一个奇怪的路由问题。最近我通过 Devise 为我的 Rails 应用程序添加了电子邮件确认,我试图设置确认/新操作,以便用户可以在注册后重新发送他们的电子邮件确认。

因此,这是我的 Devise 用户身份验证的当前路由设置:

devise_for :users do    
    match 'users/logout' => 'devise/sessions#destroy'
end

在运行 rake 路由之后,这就是我想要的相关新确认路径得到的:

new_user_confirmation GET    /users/confirmation/new(.:format)     {:action=>"new", :controller=>"devise/confirmations"}

我的新确认电子邮件操作的链接如下:

<%= link_to "Didn't receive unlock instructions?", new_user_confirmation %>

单击此链接会将我重定向到 url /users/confirmation/new.user,但我收到路由错误:

路由错误

没有路线匹配 {:controller=>"devise/tournaments", :action=>"results"}

这对我来说很奇怪,因为 Devise 与我的比赛控制器无关,我的比赛控制器也从未在任何与设计相关的功能中引用。

我正在使用 Rails 3.1 和 Devise 2.1.2

4

1 回答 1

0

这个问题实际上源于我所有地方的应用程序布局。到目前为止,我必须处理的唯一设计视图是注册视图和注册视图,默认情况下它们都不会呈现布局。自然地,我假设这个页面也不会,所以我不知道要留意它。

在我的应用程序布局中,我有一个链接到上面的路由,:controller=>"devise/tournaments", :action=>"results"只需将其更改为命名路由即可tournament_results_path解决我的问题。

于 2012-07-17T19:34:13.013 回答