关联模型中项目数量的范围

时间:2014-02-12 17:37:12

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

假设我们有一个Tag模型,其中许多关联Post(或无)通过has_many关联。

是否有一种有效的方法只通过范围选择有tag.posts.size > 0的标签?

表现如下:

scope :do_have_posts, -> { where("self.posts.count > 0") } #pseudo-code

感谢。

1 个答案:

答案 0 :(得分:2)

这应该只返回带有帖子的标签,因为rails默认情况下会进行内连接

scope :with_posts, -> { joins(:posts).uniq }