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-default にありました。config.time_zone = 'Pacific Time (US & Canada)' に変更したところ、問題なく動作するようになりました:)

于 2009-01-29T23:01:08.983 に答える