在 Rails 中,我试图验证通过 excel 文档导入的日期。它不会通过 ActiveRecord,因此我无法使用系统中用于验证其他日期的Timeliness gem 。
所以我写了我自己的 gem 来验证日期的格式,但是有些日期是无效的,例如31/04/2013
,如果日期的格式不正确,那么它会引发RuntimeError
我救援并提供错误消息。但在红宝石中:
Date.new(2013,4,31)
» ArgumentError: invalid date
所以我想拯救他们中的任何一个。我只是担心会出现一些 ArgumentError 并且不会是这个确切的。所以我只想拯救它ArgumentError: invalid date
,这可能吗?
这是我写的 excel 日期检查器
def as_date
return nil if self.blank?
begin
date = DateDojo::DateSensei.date_format_validation(self)
if date.class == Date
return date
else
return false
end
rescue RuntimeError
:invalid_date_format_to_make_validations_cry_and_die_sad_face
rescue ArgumentError
:dates_that_wouldnt_exist_even_in_the_correct_format
end
end