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

也不起作用。

我正在运行版本 rails 2.3.2,ruby 1.8.7。

4

1 回答 1

3

您可以将要删除的对象的 ID 传递给 Active Record 的删除方法:

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

另一方面,请确定上例中 .data 属性的来源。Session.find(:all) 将返回一个 Session 对象数组,然后您将对其进行迭代。Session 没有用户 ID 列,除非您破解默认的 Session 存储来添加它。

于 2010-07-09T07:06:41.177 回答