我想从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秒内保持活动的所有行,以处理死亡聊天。
答案 0 :(得分:2)
您确定要查询正确的列吗?我想你可能需要查看created_at时间戳。我不知道你的应用程序,但我很惊讶你正在更新现有的聊天记录,而不是只插入新的聊天记录。
所以...如果我的假设是正确的,这可能就是你要找的东西:
@chats = Chat.find(:all, :conditions => ["created_at > ?", 10.seconds.ago] )
如果没有...请提供更多信息。查询应该可以正常工作,我猜测updated_at可能没有更新。
答案 1 :(得分:0)
问题出在Rails的UTC-default中。我改成了 config.time_zone ='太平洋时间(美国和加拿大)' 现在它可以正常工作:)