无法使用Rails中的Devise销毁会话

时间:2014-04-11 00:13:52

标签: ruby-on-rails ruby session ruby-on-rails-4 devise

Noob在这里使用Devise构建我的第一个Rails 4.0应用程序。使用标准的Devise战术设置我的控制器和路线。

Rake Routes显示:

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

在我的导航中,我的代码是:

<%= link_to "Sign Out", destroy_user_session_path, method: :destroy, data: { confirm: 'Are you sure?' } %>

我正在运行Guard gem,因此我的服务器始终处于打开状态,因此我知道它与我的路由和服务器不匹配。我仍然收到以下错误:

  

没有路线匹配[POST]&#34; / users / sign_out&#34;

有什么建议吗?谢谢大家!

2 个答案:

答案 0 :(得分:1)

您可能需要将method(http动词)选项更改为delete

<%= link_to "Sign Out", destroy_user_session_path, method: :delete, data: { confirm: 'Are you sure?' } %>

答案 1 :(得分:0)

检入config / initializers / devise.rb并确保已设置:

config.sign_out_via = :delete

另外,在视图中我有这个并且工作得很好:

<%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %>