使用active_record_store来存储与我的用户会话相关的信息,并且有一个很好的时间,但也发现它很容易,我没有花时间去理解它。
我最近发现,当用户退出我的网站时,Sessions表中的任何内容都不会被删除,因此我很快就积累了一个相当大的Sessions表。
我想做的是:当用户注销并删除用户计算机上的cookie时,删除Sessions表中的记录。为了实现这一点,我需要添加什么来添加我的注销例程?
截至目前,我正在做的就是从会话数据中擦除用户ID,这显然是不够的。我以为我可以通过调用ActiveRecord对象上的destroy()方法从Sessions中删除记录,但是,我没有会话ID。 (也许我只是不知道如何得到它?)
答案 0 :(得分:2)
我是铁杆的新手,但我建议你试试这个:
rake db:sessions:clear
答案 1 :(得分:0)
只是因为这是Google搜索“rails active_record_store clear table”时的最佳答案,以下是关于如何清除sessions-table的答案:https://stackoverflow.com/a/10088725/1474934
答案 2 :(得分:-1)
session[:user_id] = nil
session[:username]= nil
flash[:notice]= "You have been Logged out"
redirect_to(:action => "login")