【问题标题】:Rails v3 session destroy doesn't work?Rails v3 会话销毁不起作用?
【发布时间】:2011-06-08 09:53:28
【问题描述】:

我显然是 Rails 的新手,所以我遵循了一些关于如何在注销时清理会话的示例,但会话没有被清理。请参阅此处的代码,第一个记录器语句打印“20”,第二个记录器语句也打印“20”

还有什么我需要做的,可能是一些配置?我也尝试了 session.delete(:user_id) ,但它不起作用。

def destroy
  logger.error "Session user #{session[:user_id]}" #prints 20

  session[:user_id] = nil
  session.delete(:user_id)
  session.destroy

  logger.error "Session user #{session[:user_id]}" #prints 20 again??

  redirect_to :root
end

我的环境 -

  • Rails v3.0.3 本地开发环境 (OSX)
  • 一切都是默认的,因为它是一个开发环境
  • 默认会话存储,我还没玩过这个

【问题讨论】:

    标签: ruby-on-rails session session-variables


    【解决方案1】:

    代替 session.destroy 使用

    重置会话

    这将重置应用程序中存在的所有会话。

    谢谢....

    【讨论】:

    • 谢谢,成功了。只是好奇,为什么 session.destroy 不起作用以及清除会话对象的推荐方法是什么?
    • 等等,您说 - “重置应用程序中存在的所有会话”是否意味着它将重置所有登录应用程序的用户的会话对象?这不是我想要的,我只想破坏点击退出的特定用户的会话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2011-11-25
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多