6

多くの改訂版があるwiki記事があると想像してください。データベースを介してActiveRecordでクエリを実行したいのですが、過去24時間に更新されたリビジョンを持つ記事のみが返されます。そのようなことは可能ですか?

私はそれが次のようなものになると思います:

Articles.find_all(:include => :revisions, 
                  :conditions => {:revision[updated_at] => 1.week.ago..Time.now.utc})

これが不可能な場合、find_by_SQLに渡すことができるある種の生のSQLがありますか?

4

2 に答える 2

4

記事のみが必要で、すべてのリビジョンを積極的に読み込む必要がない場合は、代わりに:joinsを使用できます。各記事のすべてのリビジョンがプリロードされていないため、使用するメモリが少なくなります。のようなことをする場合は、:includeを使用してくださいarticle.revisions

Article.find(:all, 
  :joins => :revisions, 
  :conditions => ["revisions.updated_at > ?", 24.hours.ago]
)
于 2010-02-21T05:26:52.480 に答える
3

モデルにどの程度正確に名前を付けているかに応じて、次のようになります。

Article.find(:all, :include => :revisions, :conditions => ["revisions.updated_at > ?", 1.week.ago])
于 2010-02-21T05:06:55.943 に答える