我们说我有两种模式:
广告系列和资格认证。广告系列has_one :qualification
和资格belongs_to :campaign
。
我们假设资格认证具有male_gender
布尔属性,这是查找具有male_gender
== {{1}资格的所有广告系列的最有效方式}
一种方法是通过索引true
循环验证。创建一系列campaign_ids,然后获取包含这些ID的广告系列,但这似乎不太有效。
理想情况下,我想做male_gender
这可能吗?有更好的方法吗?
答案 0 :(得分:2)
你当然可以做到这一点。使用连接,您可以在where查询中引用另一个表:
Campaign.joins(:qualification).where(qualifications: {male_gender: true})
Rich Peck编辑
您也可以将其放入scope:
#app/models/campaign.rb
class Campaign < ActiveRecord::Base
scope :male_gender, -> { joins(:qualification).where(qualifications: {male_gender: true}) }
end
...这将允许您拨打@campaigns = Campaign.male_gender