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"
する:if => "self.errors.empty? && self.current_step == basic"
と、魅力のように機能します。
私が間違っていることは何ですか?例は、ネストされたものが機能することを示していwith_option
ます。
誰かが私を助けることができますか?前もって感謝します。