想象一下,我有很多修订版的 wiki 文章。我想通过数据库使用 ActiveRecord 进行查询,它只返回那些具有在过去 24 小时内更新的修订的文章。这样的事情可能吗?
我想它会是这样的:
Articles.find_all(:include => :revisions,
:conditions => {:revision[updated_at] => 1.week.ago..Time.now.utc})
如果这是不可能的,是否有某种类型的原始 SQL 可以传递给 find_by_SQL 来解决问题?
最佳答案
如果您只需要文章而不需要急切加载所有修订版,则可以使用 :joins 代替。它使用较少的内存,因为它不会预加载每篇文章的所有修订。如果您要执行类似 article.revisions
的操作,请使用 :include .
Article.find(:all,
:joins => :revisions,
:conditions => ["revisions.updated_at > ?", 24.hours.ago]
)
关于ruby-on-rails - Rails ActiveRecord : Is a combined :include and :conditions query possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304766/