[RUBY] Je souhaite éliminer les messages d'erreur en double

Message d'erreur en double ①

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! !! !!

Solutions

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.

Message d'erreur en double ②

Si vous validez presence: true en utilisant une clé externe, vous obtiendrez deux messages d'erreur avec un contenu similaire.

Solutions

Supprimez la validation de la clé externe décrite dans le modèle.

[A part] Je souhaite modifier l'ordre des messages d'erreur

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

Je souhaite éliminer les messages d'erreur en double
Je veux convertir des caractères ...
Je veux contrôler le message d'erreur par défaut de Spring Boot
Je souhaite développer une application web!
Je veux écrire un joli build.gradle
Je veux créer une application ios.android
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!
Je veux écrire un test unitaire!
[Rails] Comment afficher les messages d'erreur individuellement
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Je veux arrêter complètement les mises à jour Java
Je veux utiliser @Autowired dans Servlet
Je souhaite cibler les champs statiques sur @Autowired
Je veux faire du développement d'équipe à distance
Comment afficher les messages d'erreur en japonais
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Je veux trier par délimiteur d'onglet avec ruby
Exécuter R à partir de Java Je veux exécuter rJava
La route vers la japonaisisation des rails conçoit des messages d'erreur
[Swift] Je veux dessiner des lignes de quadrillage (carrés)
Je souhaite envoyer un e-mail en Java.
Je souhaite terminer correctement l'installation de npm [2020]
[Ruby] Je veux faire un saut de méthode!
Je veux utiliser java8 forEach avec index
Je veux var_dump le contenu de l'intention
Je souhaite transmettre APP_HOME pour me connecter à Gradle
Je veux écrire une simple répétition d'une chaîne de caractères
Je souhaite concevoir une structure pour la gestion des exceptions
rsync4j --Je veux toucher rsync en Java.
Je veux jouer avec Firestore de Rails
Je veux être finalement même à kotlin
Je veux écrire rapidement de java vers sqlite
Je veux tronquer après la virgule décimale
[Rails] Comment émettre des messages de réussite et d'erreur
Je veux réduire les erreurs simples. Pour vous commander.
Je souhaite effectuer un traitement d'agrégation avec spring-batch
[Rails] Je veux charger du CSS avec webpacker
Je souhaite supprimer un fichier géré par Git
Je veux obtenir la valeur en Ruby
Je souhaite analyser morphologiquement le journal stocké dans la base de données et le stocker dans la base de données pour classer les messages 1
Je souhaite également utiliser Combine dans UIKit.
Je souhaite utiliser les fonctions pratiques de Clojure dans Kotlin
Je veux appeler une méthode d'une autre classe
Je veux faire quelque chose comme "cls" en Java
Je veux utiliser NetBeans sur Mac → Je peux l'utiliser!
Je veux intégrer n'importe quel TraceId dans le journal
Expression de pointage Je souhaite en spécifier plusieurs
Je veux aussi utiliser des coquillages à Laradock! !!
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)