我有一个Post
模型has_many :feedbacks, :through => another_model
。 Feedback
模型具有:name
属性。
我需要Posts
feedbacks
Posts.joins(:feedbacks).where
个名称实例超过2个。
例如:
Post One的反馈名称为[Like,Like,Like,Spam]
Post Two的反馈名称为[Dislike,Spam,Close]。
我想要Post One
到目前为止我得到的最好的是......
group("name")
我知道我需要having count > 2
和Posts.joins(:another_models).group("posts.id", "another_models.feedback_id")
.having("COUNT(another_models.feedback_id) >= ?", 2)
,但我无法正确地将所有条款串在一起。
使用正确的查询进行编辑
{{1}}
感谢您的帮助。
答案 0 :(得分:1)
Post.joins(:feedbacks).group("posts.id").having("COUNT(feedbacks.id) > 2")
答案 1 :(得分:1)
尝试以下
Post.joins(:feedbacks).group("posts.id").having("COUNT(DISTINCT(feedbacks.name)) < COUNT(feedbacks.id)")