Rails verschachtelt mit_Option: wenn bei der Validierung verwendet

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

Bevor also irgendwelche Validierungen vorgenommen werden, muss derAktualisierbar Das Unterprogramm wird aufgerufen und füllt daserrors[:base] Array mit entsprechenden Fehlern, was bedeutet, dass das Objekt nicht aktualisierbar ist. Und ich wollte, dass der Rest der Überprüfungen übersprungen wird, wenn Fehler in dieser Unterroutine gefunden werden, das oben genannte Beispiel jedochNICHT Arbeiten - es führt alle Überprüfungen durch.

Aber wenn ich mich ändere:if => "self.current_step == basic" zu:if => "self.errors.empty? && self.current_step == basic" Das wirkt wie ein Zauber.

Was mache ich falsch? Beispiele zeigen, dass verschachteltwith_option sollte arbeiten.

Kann mir jemand helfen ? Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage