路由错误:没有路由匹配[GET]“/ users / sign_out

时间:2014-02-24 14:09:44

标签: ruby-on-rails session devise routes

我正在使用设计进行用户身份验证。在我看来,我已经设定了:

<% if user_signed_in? %>
  <li><%= link_to "Log Out",  destroy_user_session_path  %></li>
<% else %>
  <li><%= link_to "Sign In", new_user_session_path  %></li>
<% end %>

然而,当我点击Log_Out时,我收到一个错误:

没有路线匹配[GET]“/ users / sign_out”

然而,当我检查我的佣金路线时,我得到了:

 devise/sessions#destroy   destroy_user_session DELETE /users/sign_out(.:format)

3 个答案:

答案 0 :(得分:1)

apneadiving说了什么。

<%= link_to "Log Out",  destroy_user_session_path, method: :delete  %>

答案 1 :(得分:1)

默认退出是使用“删除”方法。你的路线还说方法是“删除”

如果你想使用“get”方法

将devise.rb修改为

config.sign_out_via = :get

答案 2 :(得分:0)

Baloo是对的,请务必使用:delete方法。如果你调用

,你可以清楚地看到这一点
rake routes

您将看到路径和方法。