Rails 3 Devise Confirmation Routing Error



我在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=>"设计/锦标赛",:action=>"results"}

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

我使用的是Rails 3.1和Devise 2.1.2

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

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

最新更新