Dieser Code ist für mich nicht funktioniert, aber der Debugger auslöst, und die Werte sind das, was ich für meinen Testfall erwarten:Erzwingen sich gegenseitig ausschließende Felder Präsenz in Schienen
validates :a, :presence => false, :if => Proc.new { |f| debugger; f.b.present? }
validates :b, :presence => false, :if => Proc.new { |f| debugger; f.a.present? }
Ziel: a
und b
sollte niemals gleichzeitig definiert werden.
Wenn ich die Syntax verstehe, a
Anwesenheit sollte false
sein, wenn b
vorhanden ist. Und ähnlich für b
.
Habe ich das falsch verstanden? Ich glaube, dass die Daten über save!
aufgezeichnet werden. Aber dann habe ich bereits bestätigt, dass die Validierungen aufgerufen werden. Ich schaute auf das Objekt sofort nach obj.save!
und die obj.errors
hat eine leere messages
Hash.