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