在模型中做出例外是否恰当?

时间:2014-05-12 10:24:31

标签: ruby-on-rails ruby-on-rails-4

我有一个解析日期和时间的方法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

1 个答案:

答案 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