validate :updatable? # First validation there is
with_options :if => Proc.new { |object| object.errors.empty? } do |updatable|
updatable.with_options :if => "self.current_step == basic" do |step|
validates .... bla-bla bla
因此,在进行任何验证之前,将调用可更新子例程并使用适当的错误填充errors[:base]
数组,这意味着该对象不可更新。如果在此子例程中发现任何错误,我希望它跳过其余的验证,但上述示例不起作用- 它执行所有验证。
但是,如果我改成:if => "self.current_step == basic"
is:if => "self.errors.empty? && self.current_step == basic"
就像一个魅力。
我做错了什么?示例表明,嵌套with_option
应该可以工作。
有人能帮我吗 ?提前致谢。