0

我的代码有效。我在这里遇到的问题是,从 2010 年到 1995 年,每年都会出现 11 月 31 日和 4 月 31 日这样的日期,这意味着我必须输入所有这些日期,例如 [Date.new(2012,09,31),Date.new( 2011,09,31)] 等。我试图让这个验证只在一个月和一天内工作,以避免输入过多或换句话说缩短我的代码,请参阅我的 Model/profile.rb 的描述

 validate :excluded_dates

private
def excluded_dates
exclusion_dates = [Date.new(2012,9,31), Date.new(2012,2,1)]
if exclusion_dates.include?(self.next_shoeing)
  self.errors.add(:next_shoeing, "cannot be on a reserved date.")
end
4

1 回答 1

1

首先做Date.new(2012,9,31)会给你一个ArgumentError: invalid date. IMO 无需验证这一点,因为没有人能够构建这样的日期(只需在此模型之外处理此异常)。

所以 ifnext_shoeingDate它的一个实例无论如何都不会无效。

于 2012-12-08T12:41:55.903 回答