Ich habe einfach ApplicationRecord
Klasse wie folgt:Rails - validieren Feld, wenn ein anderes Feld nicht leer ist
class User < ApplicationRecord
validates :name, presence: true
validates :surname, presence: true
end
Nun würde Ich mag meinen Code zu modifizieren, so dass die Felder nur vorhanden sein muss, wenn einer von ihnen ist Geschenk. Also, ich brauche etwas zu haben, wie:
if name_is_present? || surname_is_present?
validate_name
validate_surname
else
#don't validate anything
end
I Standard Rails Formulare verwenden, so im Fall ungültiger Form würde Ich mag meine benutzerdefinierte Validierungsnachricht mit konkretem Feld zugeordnet ist zeigen, wie es bei Standard arbeitet Validierungen. Wie kann ich das machen?
Sie können einen 'ActiveModel :: Validator 'erstellen, der das Vorhandensein von beiden oder die Abwesenheit von beiden prüft. –
@AlejandroMontilla das ist eigentlich eine viel bessere Idee, als eine Reihe von Logik in die 'if:' und 'ifere:' Optionen für die normale Anwesenheitsvalidierung zu schieben. http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations – max