假设我有一座拥有许多建筑物的城市。我想在城市中创建一个方法,检查城市是否有具有特定条件的建筑物,例如:
def has_building?(conditions)
!self.buildings.where(conditions).empty?
end
哪种方法正常,但包含应包含在建筑模型中的行为。是否可以创建一个关联的方法,以便我可以将其转换为:
def has_building?(conditions)
self.buildings.meet_requirements?(conditions)
end
答案 0 :(得分:1)
你的意思是
class City < ActiveRecord::Base
has_many :buildings do
def meet_requirements?(conditions)
self.where(conditions).any?
end
end
end
或强>
class Building < ActiveRecord::Base
def self.meet_requirements?(conditions)
self.where(conditions).any?
end
end