Вы можете использовать or
:
Parent
.joins(:children)
.where(city: city_name)
.or(Parent.joins(:children).where(children: { city: name }))
Независимо от того, используете ли вы объединения, чтобы получить Родителей по их городу, при использовании объединений вам необходимо «ставить префикс» в таблицу соединений для фильтрации их строк.
Если вам это неудобно, вы можете использовать строковую версию
Parent
.joins(:children)
.where('parents.city = :city OR children.city = :city', city: city_name)