在控制台中使用连接、拥有和位置

Using joins, having and where in console

我在 rails 控制台中试图找到所有拥有多个状态 "completed".

订单的用户

这一行给了我所有超过 1 个订单的用户,无论订单状态是完成、退款还是错误:

User.joins(:orders).group("users.id").having("count(orders)>1")

我想得到这样的东西:

User.joins(:orders).group("users.id").having("count(orders.where(state: "completed"))>1")

这是我第一次使用连接和拥有,我很困惑为什么这不起作用,我已经搜索了一段时间了。

这应该有效

User.joins(:orders).where(orders: {state: "completed"}).group("users.id").having("count(orders)>1")