142

どこにも見つからないようです...Railsでユーザーのセッションを削除/破棄/リセット/空/クリアするにはどうすればよいですか?1つの値だけでなく、すべてが..

4

5 に答える 5

214

すべてをクリアするには、コントローラーでreset_sessionメソッドを使用します。

reset_session

このメソッドに関するドキュメントは次のとおりです。http://api.rubyonrails.org/classes/ActionController/Base.html#M000668

中に保存されているすべてのオブジェクトをクリアし、新しいセッションオブジェクトを初期化することにより、セッションをリセットします。

幸運を!

于 2010-03-09T00:06:58.670 に答える
48

Railsのセッションはハッシュオブジェクトです。したがって、ハッシュをクリアするために使用できる関数はすべてセッションで機能します。

session.clear

または、特定のキーを破棄する必要がある場合:

session.delete(key)

Rails3.2でテスト済み

追加した

人々が言及したsession={}のは悪い考えです。に関してsession.clear、Lobatiのコメント-session.clearが行う以外のクリーンアップを行うため、reset_session[session.clear]を使用する方がおそらく良いようです。内部的には、 reset_sessionはsession.destroyを呼び出しますこれ自体は、他のいくつかのものと同様にclearを呼び出します。

于 2013-07-26T14:08:23.220 に答える
9

ユーザーのセッションを削除するには

session.delete(:user_id)
于 2015-08-25T08:43:18.557 に答える
5

特定のパラメータのみをクリアするには、次を使用できます。

[:param1, :param2, :param3].each { |k| session.delete(k) }
于 2014-02-20T05:21:25.740 に答える
3

このコードをApplicationControllerに追加します

def reset_session
  @_request.reset_session
end

(私の問題を修正したので、なぜ上記の誰もこのコードに言及していないのかわかりません) http://apidock.com/rails/ActionController/RackDelegation/reset_session

于 2016-04-01T13:04:23.817 に答える