2010-07-08 103 views
4

我在從活動記錄存儲中刪除時遇到問題。活動記錄存儲刪除

我想基於會話數據刪除:

ActiveRecord::SessionStore::Session.find(:all).each do |s| 
    if s.data[:userid] == 1234 
    s.destroy 
    end 
end 

似乎並沒有工作,但:

ActiveRecord::SessionStore::Session.delete_all(["updated_at < ?", 12.hours.ago]) 

似乎工作和:

ActiveRecord::SessionStore::Session.find(:all).each do |s| 
    if s.data[:userid] == 1234 
    ActiveRecord::SessionStore::Session.delete_all("session_id = ?", s.session_id) 
    end 
end 

也犯規工作。

我正在運行的版本軌道2.3.2,紅寶石1.8.7。

回答

3

您只需通過活動記錄的刪除方法,你要刪除的對象的ID:

ActiveRecord::SessionStore::Session.delete(1234) 

在另一方面,確定其中。數據屬性,就是要在上面的例子中來。 Session.find(:all)將返回一個Session對象的數組,然後迭代它。會話沒有userid列,除非您正在竊取默認的Session存儲以添加它。

+0

每個登錄用戶都獲得一個用戶標識。如果他們沒有登錄,那麼這個用戶名爲零,所以我不需要擔心。謝謝。 – Andy 2010-07-10 23:40:04