过滤关系类似于任何?在 Rails

Filter relations similar to any? in Rails

我有一个 has_many 宠物的人物模型。 Pet模型中有个方法叫is_parent? 如何根据宠物是否已经拥有 child 来过滤某人的宠物? 我想要类似的东西

person = Person.first
person.pets.any? { |pet| pet.is_parent? } # returns true

有什么我可以叫的吗 person.pets.filter { |pet| pet.is_parent? } 和 returns 所有具有 children?

的宠物

谢谢

您可以像这样使用 select method from Ruby's Enumerable 模块

person.pets.select { |pet| pet.is_parent? }

也可以写成

person.pets.select(&:is_parent?)

也就是说,对于大量记录,通常最好在数据库端进行过滤。