有没有找到ActiveRecored验证的触发器方法的好方法?

时间:2015-06-23 14:52:15

标签: ruby-on-rails validation activerecord

我有一个具有多个验证的模型。我想跳过一个验证,只要它是从某个方法触发(在我的情况下,通过保存)。

为了澄清,我不想跳过其余的验证。

我可以通过调用者数组检查调用堆栈,但我想知道它是否可以以更好的方式完成?

1 个答案:

答案 0 :(得分:0)

是的,this是您正在寻找的。这是一个例子:

class Model < ActiveRecord::Base
  attr_accessor :skip_validation

  validates :my_validation, unless: :skip_validation
  validates :another_validation
end

然后,只要您想要跳过my_validation,只需在对象上设置skip_validationtrue,然后再拨打save

m = Model.new
m.skip_validation = true
m.save # my_validation will not run, and another_validation will run