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ę.