2012-11-14 31 views
0

我使用的設計進行驗證,現在來看,我可以登錄了誰是自動登錄的用戶。設計沒有確定的路線

然而,設計不認路localhost:3000/users/sign_out

它給出了一個錯誤

No route matches [GET] "https://stackoverflow.com/users/sign_out" 

在我的路線,我有devise_for:用戶聲明爲我爲用戶生成的設計。

我已經制定設置好了我的用戶模型也user.rb如下

class User < ActiveRecord::Base 
devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
attr_accessible :email, :password, :password_confirmation, :remember_me 
end 

我耙路線呈現以下

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

任何人都知道爲什麼我的URL路徑是不是

回答

0

這是因爲路由期望DELETE HTTP操作不是GET操作。

destroy_user_session DELETE /users/sign_out(.:format)設計/會話#破壞

通過在瀏覽器中輸入一個URL你發送GET動作到該網址。

爲了使色器件接受的SIGN_OUT路線變化devise.rb GET操作:

config.sign_out_via = :delete 

to 

config.sign_out_via = :get 

另一種方法是一個:method => :delete添加到鏈接的觀點,這樣一個DELETE操作會按Devise的要求發送到您的服務器。

+0

非常感謝,它確實工作! – zurik