我遇到了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 %>
点击此链接会将我重定向到网址/users/confirmation/new.user
但我收到路由错误:
路由错误
没有路线匹配{:controller =&gt;“devise / tournaments”, :动作=&gt; “中的结果”}
这对我来说很奇怪,因为Devise与我的锦标赛控制器无关,我的锦标赛控制器也没有参考任何与设计相关的功能。
我正在使用Rails 3.1和Devise 2.1.2
答案 0 :(得分:0)
问题实际上源于我所有地方的应用程序布局。到目前为止,我必须处理的唯一设计视图是注册视图和sign_up视图,它们都没有默认渲染布局。当然,我假设这个页面不会这样,所以我不知道要注意它。
在我的应用程序布局中,我有一个链接到上面的:controller=>"devise/tournaments", :action=>"results"
的路由,只需将其更改为指定的路由tournament_results_path
即可解决我的问题。