0
我有很多模型應該在創建後的幾天內「完成」。 我做了一個before_filter,找到應該完成並完成它們的所有模型。 問題是,我無法弄清楚如何編寫相同的規格。 這些模型進行了驗證這樣的:(僞驗證):rails,模擬before_filter
validates :till, date: { later_than: 2.days.from_now.to_date, earlier_than: 8.days.from_now.to_date }
中的before_filter看起來是這樣的:
@models = Model.where(['till <= ? AND finished = ?', Time.now.to_date, false])
@models.each do |model|
model.update_attributes(finished: true)
end
end
因此,爲了使我的before_filter找到測試的模型,我可以用假日期保存(即5.days.ago)通過validate: false
但是在過濾前update_attributes
調用將返回false,因爲模型有錯誤的日期。
請問請問如何讓before_filter跳過單個測試用例環境中的驗證?
是否您的驗證應該只是在創建時觸發而不是在更新? – phoet 2012-03-16 15:58:10
omg,非常明顯..隨時添加此作爲答案,所以我可以接受它 – 2012-03-16 16:45:22