ruby-on-rails - 如何在 Rails 控制台中找到超过 1 个帖子的所有用户
问题描述
我想在 Rails 控制台中返回超过 1 个帖子的所有用户。
一个用户has_many :posts
和一个帖子belongs_to :user
我已经搞砸了 where 方法,但我找不到任何东西。提前致谢!
解决方案
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")
推荐阅读
- python - 尝试在 Python 中创建一个程序,将名称从所述 .txt 文件更改为用户名
- java - 对于每个与对于
- php - PHP echo 中的 CSS 样式
- html - 导航栏折叠未对齐的项目
- python - Python 合并排序算法
- terraform - 如何使用 Terraform 在 GCP 中附加驱动器并将驱动器号分配给 Windows 服务器?
- arrays - 选择最接近零的元素
- httphandler - ASP Web 窗体上的 Http 处理程序
- python - 具有指定置信区间的 Seaborn Barplot
- typescript - Errors during compiling webpack production when using latest versions of dependencies