當我嘗試調用'user.my_method'時,我拉着頭髮試圖弄清楚爲什麼我給Warden :: Manager.before_logout的調用爲NilClass拋出一個NoMethodError。然後,我在before_logout塊中添加了一個debug puts調用,並發現它在每次註銷時都被稱爲TWICE - 第一次用戶爲零,然後在用戶對象提供之後立即調用。所以我能夠通過改變'user.my_method if user'的調用來簡單地避開這個異常,但是我仍然不知道爲什麼before_logout會被調用兩次。有沒有人看過這個?這可能只是那些發生在發展中的環境異常?Rails Warden before_logout被調用兩次
Devise.setup do |config|
Warden::Manager.after_authentication do |user,auth,opts|
user.update_attributes(is_active: true)
end
Warden::Manager.before_logout do |user,auth,opts|
user.update_attributes(is_active: false) if user
end
但是這就是我擁有它的原因,這就是爲什麼它很混亂。以下是配置文件的前幾行:Devise.setup do | config | Warden :: Manager.after_authentication do | user,auth,opts | user.update_attributes(is_active:true) end Warden :: Manager.before_logout do | user,auth,opts | user.update_attributes(is_active:false)如果用戶 結束 –