Использование прокси-сервера ассоциации для коллекции

Предположим, что у меня есть город, в котором много зданий. Я хочу создать метод в городе, который проверяет, есть ли в городе здания с определенными условиями, например:

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

Это прекрасно работает, но содержит поведение, которое должно содержаться в модели Building. Возможно ли создать связанный метод, чтобы я мог преобразовать его в нечто вроде:

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

ИЛИ

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

licensed under cc by-sa 3.0 with attribution.