在Rails中使用Devise 3.2.3 - 无法注销

u19*_*964 0 authentication rake ruby-on-rails devise

我正在使用devise 2.1.0 for rails app 3.2.3.这是我做的:

Add gem 'devise' to Gemfile and run bundle
Run rails g devise:install
Run rails g devise User
Setup db by running rake db:migrate
Run Code Online (Sandbox Code Playgroud)

application.html.erb是这样的:

<%if user_signed_in? %>
    Welcome <%= current_user.email%>
    <%= link_to "Sign out", destroy_user_session_path%>
<% else %>
    <%= link_to "Sign up", new_user_registration_path %> or
    <%= link_to "Sign in", new_user_session_path %> 
<% end %>
Run Code Online (Sandbox Code Playgroud)

登录和注册工作正常,但当我单击退出时,我收到一条错误消息:

路由错误

没有路由匹配[GET]"/ users/sign_out"尝试运行rake路由以获取有关可用路由的更多信息.

这是rake路线的输出:

new_user_session GET    /users/sign_in(.:format)                          devise/sessions#new
            user_session POST   /users/sign_in(.:format)                          devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)                         devise/sessions#destroy
           user_password POST   /users/password(.:format)                         devise/passwords#create
       new_user_password GET    /users/password/new(.:format)                     devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format)                    devise/passwords#edit
                         PUT    /users/password(.:format)                         devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)                           devise/registrations#cancel
       user_registration POST   /users(.:format)                                  devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)                          devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)                             devise/registrations#edit
                         PUT    /users(.:format)                                  devise/registrations#update
                         DELETE /users(.:format)                                  devise/registrations#destroy
Run Code Online (Sandbox Code Playgroud)

我真的很困惑,因为那里有/ usrs/sign_out路线.有谁知道为什么?

Ani*_*nil 7

试试这个:

<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
Run Code Online (Sandbox Code Playgroud)

  • 别客气!请点击复选标记投票并接受答案. (3认同)