我正在開發一個使用Devise進行認證的Rails3應用程序。在工作流程中,像patient_id這樣的數據存儲在會話中。但是,當用戶登出時,會話需要被清除。我無法弄清楚如何重置會話數據,因爲Devise處理用戶登錄/註銷,我無法控制它。使用devise的Rails 3重置會話
如何處理這種情況?
我正在開發一個使用Devise進行認證的Rails3應用程序。在工作流程中,像patient_id這樣的數據存儲在會話中。但是,當用戶登出時,會話需要被清除。我無法弄清楚如何重置會話數據,因爲Devise處理用戶登錄/註銷,我無法控制它。使用devise的Rails 3重置會話
如何處理這種情況?
覆蓋設計:: SessionsController這樣的:
class SessionsController < Devise::SessionsController
respond_to :html
def destroy
super
reset_session
end
end
唐不要忘記將設計視圖移到正確的位置(視圖/設計/會話視圖/會話),並修改設計路線以指向您的控制器。例如:
devise_for :users, :controllers => { :sessions => "sessions" }
請參閱github上的設計文檔以獲取更多詳細信息或Bill發佈的鏈接。
謝謝,上述技術應該可以工作。它比我目前使用的解決方案更加清潔:https://gist.github.com/735857。這再次證明我無法正確地瀏覽文檔。我將轉向您的解決方案。 – 2010-12-10 06:13:39
也許我做錯了什麼,但我需要登錄一個用戶,並將他們發送到一個新的頁面...所以只是「reset_session」爲我工作。 – rtfminc 2011-07-04 18:45:49
我相信你不得不在乘坐色器件控制器,這裏有一個很好的職位上說:
我使用Devise,它似乎會自動重置註銷會話。意識到這是舊的舊的事後 - 確定改變行爲,因爲你問這個問題,或者我錯過了什麼? – Yarin 2013-09-11 02:09:48