ruby-on-rails - Rails ActiveRecord : Is a combined :include and :conditions query possible?

标签 ruby-on-rails activerecord include conditional-statements findall

想象一下,我有很多修订版的 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/

相关文章:

sql - Ruby on Rails : writing a migration to move a column to another table, 合并重复项,然后匹配 ID

sql - ActiveRecord:按组计数

ruby-on-rails - Rails - 检查数组中的任何对象是否为 ActiveRecord 实例

php - 将 PHP 变量包含到 CSS 中

ruby-on-rails - Rails 可以充当在 mysite 上托管域的反向代理吗?

ruby-on-rails - Rails 通知消息插件?

ruby-on-rails - Rails 从现有数据库生成固定装置

ruby-on-rails - 如何在rails中向当前URL添加参数

c++ - 是否有包含目录的 pragma 指令?

php - 如何在文件夹包含的每个HTML文件中包含单独的头文件?