2014-02-24 146 views
0

我使用的设计进行用户身份验证在我的意见,我设置:路由错误:没有路由匹配[GET]“/用户/ SIGN_OUT

<% 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] “/用户/ SIGN_OUT”

然而,当我检查我耙路线我越来越:

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

'DELETE '有一个真正的含义,基本上它不是'GET' – apneadiving

+0

但是我使用了正确的语法来注销用户 – Mutuma

+0

@Mutuma不要忘记接受帮助你解决问题的答案。 –

回答

1

什么apneadiving说。

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

默认注销是使用“删除”方法。您的路线还表示,该方法被“DELETE”

如果你想用‘get’方法

修改devise.rb到

config.sign_out_via = :get 
+0

我想我最后没有添加删除方法,但我刚纠正了错误 – Mutuma

0

Baloo是正确的,请务必使用:删除方法你可以清楚地看到这如果你调用

rake routes 

你看到的路径和方法。

+0

按照他的指示,我发现我刚刚没有在最后包括该方法 – Mutuma

相关问题