仅以特定形式进行验证

met*_*hyl 5 validation ruby-on-rails

有没有办法只在特定形式(控制器的动作)中触发验证,而不是在每次保存或更新时全局触发?像User.create(:validate=>true)旗帜的东西.

tho*_*edb 8

是的,您可以为验证提供条件,例如:

validates_presence_of :something, :if => :special?

private

def make_sepcial
  @special = true
end

def special?
  @special
end
Run Code Online (Sandbox Code Playgroud)

现在,要启用这些验证,您只需:

s = SomeModel.new
s.make_special
Run Code Online (Sandbox Code Playgroud)