With the latest rails versions you can do:
Activity.joins(:location).where(locations: { country: "Australia" })
Beware:
- it is location (singular) in
joins(:location)
because it references the belongs_to
relationship name
- it is locations (plural) in
where(…)
because it references the table name
The latter means that if you had the following:
belongs_to :location, class_name: "PublicLocation"
the query would be:
Activity.joins(:location).where(public_locations: { country: "Australia" })
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…