从ActiveRecord的查找中获取最近10秒内更新的对象

时间:2009-01-29 19:13:53

标签: ruby-on-rails activerecord find

我想从ActiveRecord的find中获取最近10秒内更新的对象。

我试过这个

@chats = Chat.find(:all, :conditions => ["updated_at > ?", 10.seconds.ago] )

以及

@chats = Chat.find(:all, :conditions => ["updated_at > ?", Time.now-10.seconds] )

甚至

@chats = Chat.find(:all, :conditions => {:updated_at => 10.seconds.ago..0.seconds.ago}]

但我仍然无法让它发挥作用:(

编辑:我正在更新另一个应用程序中的列以使其保持活动状态,我正在查看在过去10秒内保持活动的所有行,以处理死亡聊天。

2 个答案:

答案 0 :(得分:2)

您确定要查询正确的列吗?我想你可能需要查看created_at时间戳。我不知道你的应用程序,但我很惊讶你正在更新现有的聊天记录,而不是只插入新的聊天记录。

所以...如果我的假设是正确的,这可能就是你要找的东西:

@chats = Chat.find(:all, :conditions => ["created_at > ?", 10.seconds.ago] )

如果没有...请提供更多信息。查询应该可以正常工作,我猜测updated_at可能没有更新。

答案 1 :(得分:0)

问题出在Rails的UTC-default中。我改成了   config.time_zone ='太平洋时间(美国和加拿大)' 现在它可以正常工作:)