Szyny zagnieżdżone z opcją: jeśli są używane w walidacji

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

Tak więc, przed dokonaniem jakichkolwiek walidacji,aktualizowalny wywoływany jest podprogram, który wypełniaerrors[:base] tablica z odpowiednimi błędami, co oznacza, że ​​obiekt nie jest aktualizowalny. I chciałem, aby pominąć pozostałe walidacje, jeśli w tym podprogramie zostaną znalezione jakiekolwiek błędy, ale wyżej wymienionym przykładem jestNIE działa - wykonuje wszystkie walidacje.

Ale jeśli się zmienię:if => "self.current_step == basic" do:if => "self.errors.empty? && self.current_step == basic" działa jak urok.

Co robię źle? Przykłady pokazują, że zagnieżdżonewith_option powinno działać.

Czy ktoś może mi pomóc? Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion