我有一个具有多个验证的模型。我想跳过一个验证,只要它是从某个方法触发(在我的情况下,通过保存)。
为了澄清,我不想跳过其余的验证。
我可以通过调用者数组检查调用堆栈,但我想知道它是否可以以更好的方式完成?
答案 0 :(得分:0)
是的,this是您正在寻找的。这是一个例子:
class Model < ActiveRecord::Base
attr_accessor :skip_validation
validates :my_validation, unless: :skip_validation
validates :another_validation
end
然后,只要您想要跳过my_validation
,只需在对象上设置skip_validation
至true
,然后再拨打save
。
m = Model.new
m.skip_validation = true
m.save # my_validation will not run, and another_validation will run