Отношения фильтра похожи на какие-нибудь? в рельсах - PullRequest
1 голос
/ 20 июня 2020

У меня есть модель Person, у которой есть_many pets. В модели Pet есть метод is_parent? Как мне отфильтровать домашних животных человека по тому, есть ли у них ребенок или нет? Я хочу что-то подобное, например

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

Есть что-то, что я могу назвать, например, person.pets.filter {| pet | pet.is_parent? } и возвращает всех животных с детьми?

Спасибо

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете использовать метод select из модуля Ruby Enumerable , например,

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

, который также можно записать как

person.pets.select(&:is_parent?)

При этом при большом количестве записей обычно лучше выполнять фильтрацию на стороне базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...