2012-03-21 68 views
0

假設我有一座擁有許多建築物的城市。我想創建一個城市的方法,來檢查城市是否有特定的條件的建築,如:使用關聯代理進行集合

def has_building?(conditions) 
    !self.buildings.where(conditions).empty? 
end 

,工作正常,但包含應包含在建築模型的行爲。是否有可能建立相關的方法,這樣我可以把它轉換爲是這樣的:

def has_building?(conditions) 
    self.buildings.meet_requirements?(conditions) 
end 

回答

1

你的意思是像

class City < ActiveRecord::Base 
    has_many :buildings do 
    def meet_requirements?(conditions) 
     self.where(conditions).any? 
    end 
    end 
end 

OR

class Building < ActiveRecord::Base 
    def self.meet_requirements?(conditions) 
    self.where(conditions).any? 
    end 
end 
+0

是的,太棒了!它似乎是任何?是關鍵。我用空做同樣的事情?當然會得到關係錯誤。一切都很好,很好! – Spyros 2012-03-21 02:54:17