3

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

DataMapper ..例如使用博客模型(帖子,评论等 - http://datamapper.org/docs/associations.html)我正在尝试锻炼如何获取没有任何评论的博客帖子..

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

很多很幸运:(

我在这里读到,对于复杂的报告查询,最好使用 SQL,但肯定有办法做到这一点,不是吗?

提前致谢。

4

1 回答 1

3

如果您的 Post 模型中没有计数器缓存(例如“comments_count”),这会很慢。但无论如何,这里是:

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

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

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

后者效率更高,尤其是在 Rails 3 中(由于延迟查询)。

于 2010-02-10T21:52:10.537 回答