0

我想从 ActiveRecord 的查找中获取最近 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 秒内保持活动状态的所有行,以处理死聊天。

4

2 回答 2

2

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

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

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

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

于 2009-01-29T20:19:44.957 回答
0

问题出在 Rails 的 UTC 默认值中。我将其更改为 config.time_zone = 'Pacific Time (US & Canada)' 现在它可以正常工作了:)

于 2009-01-29T23:01:08.983 回答