Datamapper(ruby) - (使用博客示例)获取没有评论的帖子

时间:2010-02-10 20:51:51

标签: ruby datamapper

在使用这个地方作为很多其他事项的参考之后的第一个问题......我很紧张。

DataMapper ..以博客模型为例(帖子,评论等 - http://datamapper.org/docs/associations.html)我正在努力研究如何获取没有任何评论的博客帖子。

像Post.all(:comments => {:comment => nil})

很多运气很多:(

我在这里读到,对于复杂的报告查询,最好下载到SQL,但肯定有一种方法可以做到这一点吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您的Post模型中没有计数器缓存(称为“comments_count”),则速度会变慢。但无论如何它在这里:

Post.find(:all, :include => :comments).select { |post| post.comments.empty? }

我建议使用计数器缓存解决方案(但这涉及一些模式重构并在迁移期间更新计数器一次):

Post.all(:conditions => { :comments_count => 0 })

后者效率更高,尤其是在Rails 3中(懒惰查询的原因)。