【问题标题】:Rails3 / Sessions / Active_Record_Store / Signout --> How to delete the cookie and the record in the Sessions table?Rails3 / Sessions / Active_Record_Store / Signout --> 如何删除Sessions表中的cookie和记录?
【发布时间】:2011-06-20 08:46:34
【问题描述】:

使用 active_record_store 来存储与我的用户会话相关的信息,并且很享受它的简单性,但也发现它是如此简单,以至于我没有花时间去理解它。

我最近发现,当用户退出我的站点时,Sessions 表中的任何内容都不会被删除,因此我很快就积累了一个相当大的 Sessions 表。

我想做的是:当用户退出时删除 Sessions 表中的记录并删除用户计算机上的 cookie。我必须在我的登出例程中添加什么来完成此操作?

到目前为止,我所做的只是从会话数据中擦除用户 ID,这显然是不够的。我以为我可以通过调用 ActiveRecord 对象上的 destroy() 方法从 Sessions 中删除记录,但是我没有会话 ID。 (也许我只是不知道如何获得它?)

【问题讨论】:

    标签: ruby-on-rails session ruby-on-rails-3 activerecord cookies


    【解决方案1】:

    我是 Rails 的新生,但我建议你试试这个:

    rake db:sessions:clear
    

    【讨论】:

    • 这将清除所有会话,而不是注销时的用户!
    【解决方案2】:

    只是因为这是在谷歌上搜索“rails active_record_store clear table”时的最佳答案,这里是关于如何清除会话表的答案:https://stackoverflow.com/a/10088725/1474934

    【讨论】:

      【解决方案3】:
       session[:user_id] = nil
       session[:username]= nil
       flash[:notice]= "You have been Logged out"
       redirect_to(:action => "login")
      

      【讨论】:

      • 这不会从会话表中删除条目
      猜你喜欢
      • 2011-07-27
      • 2012-12-09
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2010-12-30
      • 2016-04-16
      相关资源
      最近更新 更多