У меня есть модели ActiveRecord Parent и Kid. У родителей много детей.
У меня есть родитель, которого зовут папа, с тремя детьми, которых зовут Авель, Бобби и Каин. Я хочу найти Родителя на основе имени только одного из Детей.
parent = Parent.includes(:kids).
find_by(kids: { name: 'Bobby' })
Приведенный выше запрос предоставляет мне нужного Родителя, но parent.kids
включает только Бобби. Я хочу, чтобы Авель и Каин были также включены в parent.kids
, как если бы я это сделал:
Parent.find_by(name: 'Dad').kids
Я мог бы сделать:
Parent.includes(:kids).
find_by(kids: { name: 'Bobby' }).
tap { |parent| parent&.kids.reload }
Но разве нет «лучше «Как выбрать остальных детей? Например, есть ли способ, которым я мог бы загрузить все дочерние элементы родительского элемента при запросе родительского элемента (с помощью одного оператора SQL)?