2012-06-15 17 views
0

我在我的Rails應用程序3.2.3中使用了devise 2.1.0。下面是我做的:在Rails中使用Devise 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 

的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 %> 

的登錄和註冊工作得很好,但在我點擊退出,我得到了一個錯誤信息:

路由錯誤

沒有路由匹配[GET] 「/用戶/ SIGN_OUT」 嘗試運行耙路線有關可用路線的更多信息。

這裏是耙路線的輸出:

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 

我真的很困惑,因爲在那裏/的USR/SIGN_OUT路線。有誰知道爲什麼?

回答

7

試試這個:

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

它的工作原理,非常感謝你。 – qusr

+3

不客氣!請投票並點擊複選標記接受答案。 – Anil

+0

很遺憾看到有效的答案不被接受。 upvoting所以你至少得到一些觀點。 – Dty

相關問題