我有一个解析日期和时间的方法parse_date_if_not_null
。但是,用户输入的日期格式和时间不正确,则需要显示错误。我这样实现了它。
但我认为,这里只有错误的格式异常。
为什么会例外呢?
def parse_date_if_not_null
unless self.date_string.blank?
begin
self.ends_at = DateTime.strptime self.date_string, '%m/%d/%Y %H:%M'
rescue
errors.add(:date_string, _("Wrong date format, example: MM/DD/YYYY HH/MM"))
end
end
end
答案 0 :(得分:0)
是的,在模型中做出异常是合适的,你可以这样做......
class ...
validate: parse_data_if_not_null
def parse_data_if_not_null
unless self.date_string.blank?
erros.add(:date_string, 'Wrong date format, example: ...') if ((self.ends_at = DateTime.strptime self.date_string, '%m/%d/%Y %H:%M') rescue ArgumentError) == ArgumentError)
end
end