Hier ist, was ich erwartet hatte, eine völlig einfache Frage, aber ich kann keine endgültige Antwort in den Leitfäden oder anderswo finden.Rails 3 Validierung: Präsenz => falsch
Ich habe zwei Attribute auf einem ActiveRecord. Ich möchte, dass genau einer anwesend ist und der andere null oder ein leerer String ist.
Wie mache ich das Äquivalent von: Präsenz => falsch? Ich möchte sicherstellen, dass der Wert Null ist.
validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"
Oder vielleicht ist es eine elegantere Möglichkeit, dies zu tun ...
Ich bin mit Rails 3.0.9
Ich bin nicht sicher, was Sie brauchen die: Präsenz => überhaupt falsch in den letzten beiden Zeilen Code . – creativetechnologist
@creativetechnologist Es braucht einen Test von irgendeiner Art. Wenn ich die Validität für die Anwesenheit loslasse, gibt es mir: C: /Ruby192/lib/ruby/gems/1.9.1/gems/activemodel-3. 0.9/lib/active_model/validations/validates.rb: 79: in 'validates ': Sie müssen mindestens eine Validierung liefern (ArgumentError) – LikeMaBell
Bemerkenswert für Rails 4, dass dies' validates_absence_of' heißt. – mpowered