0

ユーザーがログインしたときにロードし、ログアウト後にカスタム設定を破棄する必要がある特定のユーザー設定があります。私はDevise gemを使用しています。また、アプリケーション全体で簡単にアクセスできるように、Rails セッションでこの設定レコード ID を保持するつもりです。

ユーザーがログアウトするとき、私は次のようなことをしたい:

Setting.delete(session[:settings_id])

ここで、Setting はモデル クラスであり、現在読み込まれている settings_id を session[:settings_id] = Settings.where(:conditions => hash).id としてセッションに保持しています。

その後、ユーザーがログアウトしたら、次を使用して設定テーブルからレコードを削除する必要があります

    Setting.delete(session[:settings_id]),

現在、セッションに保持されているsettings_idを既にロードしているためです。Devise と一緒に行うにはどうすればよいですか?

4

1 に答える 1

0

Devise は、使用できるいくつかのコールバックを提供する warden に基づいて構築されています。

Warden::Manager.before_logout do |user, auth, opts|
  Setting.delete(auth.session[:settings_id])
end
于 2012-08-26T11:01:14.593 に答える