J'ai eu l'erreur suivante lors de la mise en œuvre de la fonction de gestion des utilisateurs.
ActiveRecord::NotNullViolation in Devise::RegistrationsController#create
Si vous le recherchez sur un site de référence
"Cette erreur est une erreur provoquée par l'enregistrement d'un élément qui ne doit pas être NULL en raison de restrictions de base de données."
Il y avait.
Dans la déclaration d'erreur d'image ci-dessus
Mysql2::Error: Field 'prefecture_address' doesn't have a default value
J'ai donc vérifié le fichier de migration pour le confirmer. S'il vous plaît voir l'image.
Il ne semble y avoir aucun problème ici car il est défini comme cela dans le fichier de migration.
S'il est défini dans le fichier de migration, je pense que le destinataire ne l'a peut-être pas reçu, alors vérifiez ensuite le contrôleur. Cela avait également le nom de colonne tel que spécifié dans le fichier de migration.
Maintenant que la migration et le contrôleur sont terminés, j'ai décidé de vérifier la vue. (Je suis un peu impatient ici.) L'image de la vue est la suivante. Avez-vous compris ... Ce qui était prefecture_address dans le fichier de migration et le contrôleur était prefecuture_address dans le fichier de vue.
Lorsque j'ai fini de modifier la vue et effectué un nouvel enregistrement, l'enregistrement a réussi.
En gros, quand j'obtiens une erreur, je suis impatient avec les matchs NoRoute (je pense avoir surmonté les matchs NoRoute), alors quand j'ai une erreur que je n'ai jamais vue auparavant, je me suis dit: "Oh ... c'est fini ...". Dans ce cas, je ne savais pas à quel fichier le code source faisait référence, donc je n'étais pas pressé.
J'ai eu la chance d'examiner l'erreur et d'accéder au site. Je profiterai de cette occasion pour ajouter une tolérance d'erreur. Pardon.
【teratail】 Erreur lors de la connexion / création d'un nouveau en introduisant la fonction de devise https://teratail.com/questions/235508
Recommended Posts