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