我似乎在任何地方都找不到它... 我如何在 Rails 中删除/销毁/重置/清空/清除用户的会话?不仅仅是一个价值,而是整个价值。.
要清除整个东西使用复位会话方法在一个控制器。
reset_session
下面是关于这种方法的文档: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
通过清除所有 储存在和 初始化新的会话对象。
祝你好运!
因此,任何可用于清除 hash 的函数都将与会话一起工作。
session.clear
或者 如果需要销毁特定的钥匙:
session.delete(key)
在轨道测试3.2
补充
人们提到的 session={}是一个坏主意。关于 session.clear,Lobati 注释——看起来你最好使用 set _ session [而不是 session.clear ] ,因为它除了 session.clear 之外还会做一些其他的清理工作。内部,Set _ session 调用 session,这本身也说明了一些其他的东西。
session={}
若要只清除某些参数,可以使用:
[:param1, :param2, :param3].each { |k| session.delete(k) }
删除用户会话
session.delete(:user_id)
将此代码添加到 ApplicationController
def reset_session @_request.reset_session end
(不知道为什么上面没有人提到这个代码 因为它解决了我的问题) Http://apidock.com/rails/actioncontroller/rackdelegation/reset_session