Verwenden der Methode form_with Ich habe ein Formular erstellt, um einen numerischen Wert in form.number_field einzugeben. Wenn Sie die richtige Nummer eingeben, tritt kein Fehler auf. Wenn Sie versuchen, eine Nummer einzugeben, die die Validierung überschreitet, tritt zu diesem Zeitpunkt ein Fehler auf. Wenn Sie das Eingabeformular jedoch leer senden,
Bitte geben Sie ○○ ein ○○ ist ein ungültiger Wert ○○ ist nicht in der Liste
Und ich bekomme 3 Fehler. Senden Sie einfach den Himmel und Sie brauchen keine drei! !! !!
model
with_options presence: true do
validates :grade, format: { with: /\A[0-9]+\z/, allow_blank: true}, inclusion: { in: 1..7, allow_blank: true }
validates :class_number, format: { with: /\A[0-9]+\z/, allow_blank: true }, inclusion: { in: 1..10, allow_blank: true }
end
Format ist die Validierung regulärer Ausdrücke. Einbeziehung ist die Validierung des numerischen Bereichs.
allow_blank: true
ist eine Methode, die keine Validierung durchführt, wenn der Wert leer ist.
Es ist redundant, aber wenn es leer ist, reagiert die Format- und Einschlussüberprüfung nicht.
Schauen Sie sich die Fehlermeldung noch einmal an. "○○ ist ein ungültiger Wert" reagiert auf das Format Es ist ersichtlich, dass "○○ nicht in der Liste enthalten ist" auf die Aufnahme reagiert.
Wenn Sie "Anwesenheit: wahr" überprüfen, während Sie einen externen Schlüssel verwenden, werden zwei Fehlermeldungen mit ähnlichem Inhalt angezeigt.
Löschen Sie die Validierung des im Modell beschriebenen externen Schlüssels.
Die Reihenfolge kann durch Ändern der Beschreibungsposition für Validierung und Zuordnung aufgelöst werden. Ich bin dankbar, dass kein besonderes Problem auftritt, da ich nur die Position der Beschreibung ändere. Dies liegt wahrscheinlich daran, dass der Code von oben gelesen wird. Es ist ein bisschen, aber ich möchte eine Fehlermeldung in der Reihenfolge des Eingabeformulars senden.
Recommended Posts