9

認証にDeviseを使用してRails3アプリケーションを開発しています。ワークフローの過程で、患者 ID などのデータがセッションに保存されます。ただし、ユーザーがログアウトするときは、セッションをクリアする必要があります。Deviseがユーザーのログイン/ログアウトを処理し、それを制御できないため、セッションデータをリセットする方法を理解できません。

この状況をどのように処理しますか?

4

2 に答える 2

14

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 が投稿したリンクを参照してください。

于 2010-12-09T16:27:21.717 に答える
1

デバイスコントローラーをオーバーライドする必要があると思いますが、それについては良い投稿があります:

Devise、CanCan、およびデバイス コントローラーのカスタマイズ

于 2010-09-10T18:50:26.710 に答える