Utilisation de la méthode form_with J'ai créé un formulaire pour saisir une valeur numérique dans form.number_field. Si vous entrez le nombre correct, aucune erreur ne se produira et si vous essayez d'entrer un nombre qui dépasse la validation, une erreur se produira à ce moment. Cependant, si vous envoyez le formulaire de saisie vide,
Veuillez saisir ○○ ○○ est une valeur non valide ○○ n'est pas dans la liste
Et j'obtiens 3 erreurs. Envoyez simplement le ciel et vous n'avez pas besoin de trois! !! !!
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 est la validation des expressions régulières. l'inclusion est la validation de la plage numérique.
allow_blank: true
est une méthode qui n'effectue pas de validation si la valeur est vide.
C'est redondant, mais lorsqu'il est vide, la validation du format et de l'inclusion ne répond pas.
En regardant à nouveau le message d'erreur, "○○ est une valeur non valide" répond au format On peut voir que "○○ n'est pas dans la liste" répond à l'inclusion.
Si vous validez presence: true
en utilisant une clé externe, vous obtiendrez deux messages d'erreur avec un contenu similaire.
Supprimez la validation de la clé externe décrite dans le modèle.
La commande peut être résolue en changeant la position de description de validation et d'association. Je suis reconnaissant qu'aucun problème particulier ne se produise car je ne modifie que la position de la description. C'est probablement parce que le code est lu par le haut. C'est un peu, mais je veux envoyer un message d'erreur dans l'ordre du formulaire de saisie.
Recommended Posts