我在rails控制台内部试图查找所有拥有多个订单的用户,这些订单的状态为#34;已完成"。
此行一般为我提供超过1个订单的所有用户,无论订单状态是否已完成,退款或错误:
User.joins(:orders).group("users.id").having("count(orders)>1")
我试图得到这样的东西:
User.joins(:orders).group("users.id").having("count(orders.where(state: "completed"))>1")
这是我第一次使用加入和使用,我很困惑为什么这不起作用,而且我已经搜索了一段时间了。
答案 0 :(得分:1)
这应该有效
User.joins(:orders).where(orders: {state: "completed"}).group("users.id").having("count(orders)>1")