Ruby on rails 如何在rails控制台中找到所有拥有超过1篇文章的用户

Ruby on rails 如何在rails控制台中找到所有拥有超过1篇文章的用户,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我想返回所有在rails控制台中有超过1篇文章的用户 一个用户有多篇:文章,而一篇文章属于:用户 我把where方法弄得一团糟,但什么也找不到。提前谢谢 User.joins(:posts).group('users.id').having('count(posts.id) > 1') joins方法执行一个内部联接,该联接将导致所有与post有关系的用户,而group方法用于消除所有重复的行 按用户id为的帖子分组 即 范例- { 1 => [post_1, post_2,

我想返回所有在rails控制台中有超过1篇文章的用户

一个用户有多篇:文章,而一篇文章属于:用户

我把where方法弄得一团糟,但什么也找不到。提前谢谢

User.joins(:posts).group('users.id').having('count(posts.id) > 1')
joins方法执行一个内部联接,该联接将导致所有与post有关系的用户,而group方法用于消除所有重复的行

按用户id为的帖子分组 即 范例-

{
  1 => [post_1, post_2, post_3]
  2 => [post_5, post_10]
  ... so on
}
然后应用优先于处理聚合数据子句havingcountposts.id>1的位置


你试过User.joins:posts.whereposts:Post.all吗?可能是Hi的副本!虽然这可能是问题的解决方案,但通常不鼓励只使用代码的答案。请花一些时间编辑您的回复,并解释为什么这是一个解决方案,因为它将帮助OP和网站的未来访问者。