2013-08-16 52 views
0

因此,我試圖找到所有具有標籤名稱的位置「學校」。通過通過訪問連接表位置的has_many標籤和標籤的has_many地點:通過模型方法給定'位置'模型,其has_many'標籤'(標籤),找到所有具有特定標籤列值的關聯(標籤)記錄的位置

class Location < ActiveRecord::Base 
    has_many :location_tags 
    has_many :locations, :through => :location_tags 
end 

class LocationTag < ActiveRecord::Base 
    belongs_to :location 
    belongs_to :tag 
end 

class Tag < ActiveRecord::Base 
    has_many :location_tags 
    has_many :locations, :through => :location_tags 
end 

因此,這些都是我的模型。我知道該解決方案將涉及includesjoins或類似的規定

回答

0

明白了。

Location.where(query_stuff).includes(:tags).where(:tags => { :name => "school" }) 
1

Tag.where(:name => 'school').locations

+0

嗯......這是一個解決方案。我想了解如何從另一側做到這一點,例如,如果我已經選擇了一組位置,並希望找到那些擁有「學校」類型標籤的組合 –