2012-12-08 69 views
0

我的代碼有效。我在這裏遇到的問題是,像2010年11月31日和4月31日這樣的日期可能會從2010年到2010年每年發生,這意味着我必須輸入所有這些日期,例如[Date.new(2012,09,31),Date.new 2011,09,31)]等等。我試圖讓這個驗證工作僅一個月,這一天,以避免過多的打字或者換句話說縮短我的代碼,請參閱我的 型號/ 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 
+0

您計劃擁有多少排除日期?這些排除日期中是否有任何模式? –

+0

我打算排除不存在的日期,如11月31日4月31日和9月31日,我正在嘗試爲所有日期列 – Mazterkizh

回答

1

首先做的描述Date.new(2012,9,31)會給你一個ArgumentError: invalid date。國際海事組織沒有必要驗證這一點,因爲沒有人能夠建立這樣的日期(只是處理這個例外以外的例外)。

因此,如果next_shoeingDate的一個實例,它不會無效。