認証にDeviseを使用してRails3アプリケーションを開発しています。ワークフローの過程で、患者 ID などのデータがセッションに保存されます。ただし、ユーザーがログアウトするときは、セッションをクリアする必要があります。Deviseがユーザーのログイン/ログアウトを処理し、それを制御できないため、セッションデータをリセットする方法を理解できません。
この状況をどのように処理しますか?
認証にDeviseを使用してRails3アプリケーションを開発しています。ワークフローの過程で、患者 ID などのデータがセッションに保存されます。ただし、ユーザーがログアウトするときは、セッションをクリアする必要があります。Deviseがユーザーのログイン/ログアウトを処理し、それを制御できないため、セッションデータをリセットする方法を理解できません。
この状況をどのように処理しますか?
Devise::SessionsController を次のように上書きします。
class SessionsController < Devise::SessionsController
respond_to :html
def destroy
super
reset_session
end
end
devise ビューを適切な場所 (ビュー/デバイス/セッションからビュー/セッションへ) に移動し、コントローラーを指すようにデバイス ルートを変更することを忘れないでください。例えば:
devise_for :users, :controllers => { :sessions => "sessions" }
詳細については、github のデバイス ドキュメントまたは Bill が投稿したリンクを参照してください。
デバイスコントローラーをオーバーライドする必要があると思いますが、それについては良い投稿があります: