首页 > 解决方案 > 如何在 Rails 控制台中找到超过 1 个帖子的所有用户

问题描述

我想在 Rails 控制台中返回超过 1 个帖子的所有用户。

一个用户has_many :posts和一个帖子belongs_to :user

我已经搞砸了 where 方法,但我找不到任何东西。提前致谢!

标签: ruby-on-railsrubyactiverecord

解决方案


User.joins(:posts).group('users.id').having('count(posts.id) > 1')

joins方法执行内部联接,导致所有用户都与帖子有关系,并且该group方法用于消除所有重复行。

按帖子分组,user_id 例如 -

{
  1 => [post_1, post_2, post_3]
  2 => [post_5, post_10]
  ... so on
}

然后应用having(首选where处理聚合数据)子句having("count(posts.id) > 1")

拥有与在哪里

查找关联计数大于零的所有记录 - Thinbug


推荐阅读