[RUBY] [Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs

introduction

Par exemple, lorsque vous essayez d'enregistrer la variable "result" comme "result.save", si elle échoue, un message d'erreur sera stocké dans result. Je veux l'utiliser pour afficher un message d'erreur, mais cela devient un écran d'erreur Ruby.

En d'autres termes, je ne reçois pas le message d'erreur que je souhaite.

Vérifiez sur la console lorsqu'une erreur se produit


result.errors.any? => False

Je ne peux pas l'enregistrer, mais je n'obtiens pas d'erreur.

Cette fois, je veux obtenir une erreur en essayant de m'inscrire sans entrée.

Cause

La cause était qu'il n'y avait pas de description de validation dans Model. Lors de la création d'une table, il existe des restrictions sur les colonnes (null: false en raison de l'absence de restrictions d'entrée), mais cela seul n'entraîne pas de message d'erreur.

Contre-mesures

J'ai écrit ce qui suit dans Model.


class Result < ApplicationRecord
  belongs_to ...
  has_many ...
  validates :name, presence: true
  
  ...
end

En écrivant valide: nom, présence: vrai


result.errors.any? => True

La porte à côté


result.errors.full_messages

Donc, j'ai récupéré le contenu de tous les messages d'erreur et je les ai récupérés en utilisant ʻeach`!

Recommended Posts

[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si la commande rails devient inutilisable
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si le serveur Rails ne peut pas démarrer
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
[Rails] Que faire si vous obtenez une erreur indiquant "Impossible de trouver un moteur d'exécution JavaScript." Lors de l'exécution de la commande rails dans Catalina
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Que faire si une erreur ActionController :: UnknownFormat se produit
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous ne trouvez pas votre clé API après le déploiement sur Rails Heroku
Que faire si vous ne pouvez pas exécuter avec la commande "nom du package Java / nom de la classe"
[Rails] Quel était le message d'erreur?
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous obtenez une erreur d'argument: nombre incorrect d'arguments (donné 2, attendu 0) dans votre test RSpec
Que faire si vous recevez l'avertissement «Le validateur d'unicité n'appliquera plus la comparaison sensible à la casse dans Rails 6.1.» Dans Rails 6.0
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
Que faire si vous modifiez l'adresse d'écoute à partir de l'écran des paramètres dans le menu fixe Mattermost
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
Que faire lorsque la validation ne fonctionne pas avec l'action de mise à jour
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Que faire si vous oubliez votre mot de passe root sur CentOS7
<Installation par points> Que faire si vous ne pouvez pas continuer en raison d'une erreur lors de la création d'un environnement de développement pour l'apprentissage Rails.
Obtenez un message d'erreur en utilisant n'importe quelle méthode?
[Débutant en programmation] Que faire lorsque les rails deviennent une erreur dans l'environnement de développement local
Que faire si une erreur d'authentification de clé SSH se produit lors du déploiement automatique sur EC2 avec Capistrano
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub