Rails:找到所有具有特定属性的所有孩子的父母

时间:2019-04-11 18:33:53

标签: ruby-on-rails ruby activerecord

我需要找到所有拥有状态= 1的孩子的所有父母。

如果其中一个孩子不是status = 1;则未选择父级。

class Parent
  has_many :children
end

class Child
  status = [ 0, 1 ]
end

我已经尝试过了,但是没有用。

Parent.left_outer_joins(:children).where("children.status = ?", 1)

该方法不起作用,因为我仍然可以看到“父级”状态为“子级” = 0

3 个答案:

答案 0 :(得分:0)

我认为您需要一个子查询:

Parent.where.not(id: Children.where.not(status: 1).select(:parent_id))

答案 1 :(得分:0)

尝试一下:

Parent.where("id NOT IN (SELECT DISTINCT(parent_id) FROM children WHERE children.status =1)")

希望您会发现这很有帮助!

答案 2 :(得分:-1)

我认为您可以执行以下操作:

consumer