Answers:
要清除全部内容,请在控制器中使用reset_session方法。
reset_session
这是有关此方法的文档:http : //api.rubyonrails.org/classes/ActionController/Base.html#M000668
通过清除存储在其中的所有对象并初始化新的会话对象来重置会话。
祝好运!
rails中的session是一个哈希对象。因此,任何可用于清除哈希的功能都将适用于会话。
session.clear
或者如果必须销毁特定密钥:
session.delete(key)
在rails 3.2中测试
添加
人们提到的session={}
是一个坏主意。关于session.clear
,Lobati评论-看起来您最好使用reset_session [比session.clear]好,因为它会进行一些其他的清理工作,而不是session.clear。在内部, reset_session调用session.destroy,它本身也会调用clear以及其他一些东西。
reset_session
,因为它会进行其他一些清理工作session.clear
。在内部,reset_session
调用session.destroy
,这本身调用clear
,以及一些其他的东西。
将此代码添加到您的ApplicationController
def reset_session
@_request.reset_session
end
(不知道为什么上面没有人提到此代码,因为它解决了我的问题) http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
和reset_session
双方的工作,也许做同样的事情?