Rails3 / Sessions / Active_Record_Store / Signout - >如何删除Sessions表中的cookie和记录?

时间:2011-02-03 00:04:53

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

使用active_record_store来存储与我的用户会话相关的信息,并且有一个很好的时间,但也发现它很容易,我没有花时间去理解它。

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

我想做的是:当用户注销并删除用户计算机上的cookie时,删除Sessions表中的记录。为了实现这一点,我需要添加什么来添加我的注销例程?

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

3 个答案:

答案 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")