どのように/空レールでのセッションを破壊するには?
-
18-09-2019 - |
質問
私はどこでもそれを見つけるように見えることはできません...私は削除する方法/ /リセット/空を破壊/ Railsの中に、ユーザーのセッションをクリアしますか? 1つの値ではなく、全体のことだけではありません..
解決
コントローラでRESET_SESSIONメソッドを使用して全体をクリアするには。
reset_session
ここでは、この方法でのドキュメントがあります: http://api.rubyonrails.org /classes/ActionController/Base.html#M000668する
すべてのアウトクリアすることにより、セッションをリセットします 内に格納されたオブジェクトと 新しいセッションオブジェクトを初期化します。
グッドラック!
他のヒント
レール内のセッションは、ハッシュオブジェクトです。したがって、ハッシュをクリアするために利用可能な任意の関数がセッションで動作します。
session.clear
または 特定のキーを破壊する必要がある場合:
session.delete(key)
タグレール3.2でテスト済み
の の
追加人々は悪い考えですsession={}
で言及しています。 session.clear
について、Lobatiは、それはいくつかの他のsession.clearが何を超えて清掃ないとしてあなたが、[session.clearより] RESET_SESSIONを使用してオフにおそらく優れているように見えますcomments-。内部的には、 RESET_SESSIONはsession.destroyを呼び出します>、それ自体を明確なだけでなく、いくつかの他のものを呼び出します。に
ユーザのセッションを削除するには、
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する