根据关联属性的值查询活动记录

时间:2013-08-01 12:29:27

标签: ruby-on-rails ruby-on-rails-3

我有一个Post模型has_many :feedbacks, :through => another_modelFeedback模型具有: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 > 2Posts.joins(:another_models).group("posts.id", "another_models.feedback_id") .having("COUNT(another_models.feedback_id) >= ?", 2),但我无法正确地将所有条款串在一起。

使用正确的查询进行编辑

{{1}}

感谢您的帮助。

2 个答案:

答案 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)")