2012-03-21 65 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