Rails下清除session
Hello!
如果觉得不错的话,并且不吝转载时,请顺便添加上这篇文章的链接
http://www.hi-ruby.com/posts/1010
不知道从哪里看的, 记得以前删除session & cookies就是直接赋值为nil
即:
session, cookies = nil, nil
但是,Rails 3.0 实际项目中发现有时候好使,有时候不好使。
Rails 3.2 的项目就不好使了, debug进去,发现session虽然为nil,但是request中还是有_xxx_session 的信息
于是查了下api,发现原来已经有重置session的功能,但是注释中还有个TODO, 可能以后要有变动
重置session的方法灰常简单, 就是在action中调用 reset_session 方法即可,附上reset_session的源码,注意TODO
# File actionpack/lib/action_dispatch/http/request.rb, line 209 def reset_session session.destroy if session && session.respond_to?(:destroy) self.session = {} @env['action_dispatch.request.flash_hash'] = nil end