Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动记录存储删除_Ruby On Rails_Ruby_Activerecord_Session Timeout - Fatal编程技术网

Ruby on rails 活动记录存储删除

Ruby on rails 活动记录存储删除,ruby-on-rails,ruby,activerecord,session-timeout,Ruby On Rails,Ruby,Activerecord,Session Timeout,从活动记录存储中删除时遇到问题 我想根据会话数据删除: 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]) 也不起作用 我正在运行版本r

从活动记录存储中删除时遇到问题

我想根据会话数据删除:

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])
也不起作用


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

您只需将要删除的对象的ID传递给Active Record的delete方法即可:

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

另一方面,请确保在上面的示例中.data属性来自何处。find(:all)将返回一个会话对象数组,然后对其进行迭代。会话没有userid列,除非您正在攻击默认会话存储以添加它

每个登录的用户都会获得一个userid。如果他们没有登录,那么这个用户ID是零,所以我不需要担心。谢谢
ActiveRecord::SessionStore::Session.delete(1234)