有沒有什麼辦法可以讓我的軌道模型驗證按特定順序執行,如果以前的驗證不滿足,可以跳過某些驗證。軌道模型驗證跳過和訂單
例如:我有2個輸入字段start_date和end_date。我在我的模型中的兩個驗證方法
其中一個檢查日期是小於「12/31 /#{Date.today.year + 1}」
def end_date_in_range
if self.end_date
errors.add_to_base("Enter a date before #{Date.today.year + 1}") if self.end_date > Date.parse("12/31/#{Date.today.year + 1}")
end
end
我還有一個驗證哪些步驟通過日期從開始日期到結束日期如果用戶輸入像12/31/20101的END_DATE現在
def
(self.start_date.to_date .. self.end_date.to_date).inject(0) { |sum, n| ... }
end
,失敗的第一次驗證,但看起來它要麼繼續檢查下一個驗證或驗證第二首先執行,並在這兩種情況下掛起我的應用程序,而進程這個請求。我希望它檢查第一個驗證並將錯誤返回給用戶,而不是逐步通過第二次驗證中的日期。
感謝, 灰