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