Я реализую метод проверки для модели, которая проверяет, что срок годности не раньше даты публикации. Я пробовал с этим
def valid_date_interval
if self.expired_at && self.published_at
errors.add(:published_at, I18n.t('ubiquo.highlight.error_invalid_interval')) if self.expired_at <= self.published_at
end
end
Однако у меня есть результаты, которые не имеют смысла для меня при сравнении двух дат. Два DateTimes thar одновременно получают по сравнению с false. Вот некоторый код irb:
(rdb:1) p self.published_at.to_i == self.expired_at.to_i
true
(rdb:1) p self.published_at.to_i == self.expired_at.to_i + 1
false
(rdb:1) p self.published_at == self.expired_at
false
(rdb:1) p self
#<Highlight id: nil, title: "MyString", published_at: "2011-06-02 10:22:05", expired_at: "2011-06-02 10:22:05", created_at: nil, updated_at: nil, program_id: 827572094>
Кто-нибудь может просветить меня, как работают эти сравнения?
ура!