У меня есть таблица с названием арендная плата, которая содержит даты начала и окончания. Затем я создал проверку, чтобы никакие новые арендные ставки не могли перекрывать существующие начальные и конечные даты арендной платы.
Дело в том, что когда я нажимаю на аренду, чтобы обновить ее, и если я не изменяю какие-либо поля и нажимаю кнопку обновить Он пытается проверить себя и сказать, что он перекрывает существующую запись. (Существующая запись, на которую она ссылается, это сама.)
То, что я пытаюсь сделать, это то, как я могу сделать так, чтобы моя проверка исключалась. Вот так выглядит моя проверка.
def should_not_overlap_rental_periods
errors.add(:start_date, "can't overlap other rental periods") if self.rents.where("end_date <= ? and start_date >= ?", self.end_date.strftime("%Y-%m-%d"), self.start_date.strftime("%Y-%m-%d")).count > 0 unless self.rents.blank?
end