どこにも見つからないようです...Railsでユーザーのセッションを削除/破棄/リセット/空/クリアするにはどうすればよいですか?1つの値だけでなく、すべてが..
5 に答える
すべてをクリアするには、コントローラーでreset_sessionメソッドを使用します。
reset_session
このメソッドに関するドキュメントは次のとおりです。http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
中に保存されているすべてのオブジェクトをクリアし、新しいセッションオブジェクトを初期化することにより、セッションをリセットします。
幸運を!
Railsのセッションはハッシュオブジェクトです。したがって、ハッシュをクリアするために使用できる関数はすべてセッションで機能します。
session.clear
または、特定のキーを破棄する必要がある場合:
session.delete(key)
Rails3.2でテスト済み
追加した
人々が言及したsession={}
のは悪い考えです。に関してsession.clear
、Lobatiのコメント-session.clearが行う以外のクリーンアップを行うため、reset_session[session.clear]を使用する方がおそらく良いようです。内部的には、 reset_sessionはsession.destroyを呼び出します。これ自体は、他のいくつかのものと同様にclearを呼び出します。
ユーザーのセッションを削除するには
session.delete(:user_id)
特定のパラメータのみをクリアするには、次を使用できます。
[:param1, :param2, :param3].each { |k| session.delete(k) }
このコードをApplicationControllerに追加します
def reset_session
@_request.reset_session
end
(私の問題を修正したので、なぜ上記の誰もこのコードに言及していないのかわかりません) http://apidock.com/rails/ActionController/RackDelegation/reset_session