Предположим, у меня есть две модели:Рельсы, как получить доступ к атрибутам детской модели, где
Кампания и квалификация. Кампания has_one :qualification
и Квалификация belongs_to :campaign
.
Допустим, что квалификация имеет логический атрибут в male_gender
, что наиболее эффективным способом, чтобы найти все кампании, которые имеют квалификацию с male_gender
== true
Один из способов будет перебрать квалификации с male_gender
проиндексированы. Создайте массив campaign_ids, а затем получите кампании с этими идентификаторами, но это кажется не очень эффективным.
В идеале я хотел бы сделать что-то вроде Campaign.where("qualification.male_gender: true")
Возможно ли это? Есть лучший способ сделать это?
Гений! Большое спасибо! –
Богатый - будет ли это более эффективным? Или просто для удобства кодирования? –
Функционально они идентичны. Однако использование области позволит вам легко использовать запрос во многих местах без дублирования кода везде. То же, что и с любым другим запросом. Все, что вы делаете во многих местах для одного и того же запроса данных, является хорошим кандидатом для перехода в область. – Jon