在Rails中使用Devise无法销毁会话。

28 浏览
0 Comments

在Rails中使用Devise无法销毁会话。

这个问题在这里已经有了答案:

No route matches \"/users/sign_out\" devise rails 3

我是一个新手,正在建立我的第一个Rails 4.0应用程序,使用Devise。使用标准的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,所以我的服务器始终处于运行状态,所以我知道这不是我的路由和服务器之间的不匹配。但我仍然收到以下错误:

No route matches [POST] \"/users/sign_out\"

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

admin 更改状态以发布 2023年5月21日
0
0 Comments

检查config/initializers/devise.rb文件并确认已设置为:

config.sign_out_via = :delete

此外,在视图中我有以下代码,它也正常工作:

<%= link_to '注销', destroy_user_session_path, :method=>'delete' %>

0
0 Comments

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

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

0