我无法从活动记录存储中删除。
我想根据会话数据删除:
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。
答案 0 :(得分:3)
您只需将Active Record的delete方法传递给您要删除的对象的ID:
ActiveRecord::SessionStore::Session.delete(1234)
另一方面,请确保在上面的示例中.data属性的来源。 Session.find(:all)将返回一个Session对象数组,然后迭代。会话没有用户标识列,除非您正在攻击默认的会话存储以添加它。