Devise: “找不到id为'sign_out'的用户"

29 浏览
0 Comments

Devise: “找不到id为'sign_out'的用户"

我在我的应用程序中安装了Devise并应用了以下内容到我的application.html.erb文件中:

    <% if user_signed_in? %>
        Signed in as <%= current_user.email %>. This cannot be cheese?
        <%= link_to 'Sign out', destroy_user_session_path %>
    <% else %>
        <%= link_to 'Register', new_user_registration_path %> or <%= link_to 'Sign in', new_user_session_path %>
    <% end %>

我运行了rake routes并确认所有路由都是有效的。

此外,在我的routes.rb文件中,我有devise_for :usersroot :to => \"home#index\"

当单击“登出”链接时,我会收到以下路由错误:

No route matches "/users/sign_out"

有什么想法是什么原因导致了错误吗?

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

我在devise.rb文件中修改了这行:

config.sign_out_via = :delete

改成了

config.sign_out_via = :get

然后它开始在我的机器上工作了。

0
0 Comments

我认为退出登录的路由应该使用DELETE方法。这意味着你的退出登录链接需要如下所示:

<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>

你的链接中没有包含: method =>: delete部分。此外,请注意,为了使此功能正常工作,您还必须在您的布局文件(application.html.erb)中包含<%= javascript_include_tag :defaults %>

0