У меня есть модель активности, в которой есть участники: многие, и я хотел бы убедиться, что участник всегда существует при обновлении деятельности и ее участников. У меня есть следующий метод в моей модели деятельности, который добивается цели:
def must_have_participant
if self.participants.size == 0 || self.participants.size == self.participants.to_ary.find_all{ |p| p.marked_for_destruction? }.count
self.errors[:base] << I18n.t(:msg_activity_must_have_participant)
end
end
Проблема в том, что участники загружаются лениво, если я просто обновляю упражнение самостоятельно, чего я бы хотел избежать. Я пробовал следующую альтернативу, однако, загружен? возвращает false при удалении всех участников с использованием флага: _destroy.
def must_have_participant
if self.new_record? || self.participants.loaded?
if self.participants.size == 0 || self.participants.size == self.participants.to_ary.find_all{ |p| p.marked_for_destruction? }.count
self.errors[:base] << I18n.t(:msg_activity_must_have_participant)
end
end
end
Есть ли альтернатива загруженным? что я могу использовать, чтобы узнать, будут ли обновляться участники?