[RUBY] Lors de l'enregistrement d'un nouvel utilisateur, j'ai eu une erreur appelée ActiveRecord :: NotNullViolation et comment y faire face.

Erreur lors de l'enregistrement d'un nouvel utilisateur

J'ai eu l'erreur suivante lors de la mise en œuvre de la fonction de gestion des utilisateurs. 151aa02ffd6f364ebe9ba332e3ba4fde.png

À propos de l'erreur blanche

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.

Ce que j'ai confirmé

① Fichier de migration

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. 2d3be4158c0f509fdaaba70a1ae46896.png

Il ne semble y avoir aucun problème ici car il est défini comme cela dans le fichier de migration.

② Contrôleur

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. controller.png Cela avait également le nom de colonne tel que spécifié dans le fichier de migration.

③ Voir

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. 5bf9c8d818125e51fd7a384acda259f7.png 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.

Correction de code

Lorsque j'ai fini de modifier la vue et effectué un nouvel enregistrement, l'enregistrement a réussi.

finalement

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.

Références

【teratail】 Erreur lors de la connexion / création d'un nouveau en introduisant la fonction de devise https://teratail.com/questions/235508

Recommended Posts

Lors de l'enregistrement d'un nouvel utilisateur, j'ai eu une erreur appelée ActiveRecord :: NotNullViolation et comment y faire face.
Comment afficher les messages d'erreur et les messages de réussite lors de l'inscription en tant qu'utilisateur
J'ai construit un environnement CentOS 8 avec Vagrant et essayé de sync_folder, mais j'ai eu une erreur, donc je l'ai résolue.
Quand je bcrypt avec node + docker, j'ai une erreur
[Docker] Comment mettre à jour à l'aide d'un conteneur dans Heroku et comment gérer l'erreur de migration
J'ai eu une erreur en essayant d'installer sbt pour créer un environnement de développement Scala
J'ai eu une erreur lors de l'utilisation de nextInt, nextLine et substring.
J'ai eu un IllegalAccessError en essayant d'utiliser PowerMock avec JUnit
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Quand j'ai essayé de démarrer GlassFish, j'ai eu une erreur interne lors de la "Publication sur GlassFish 4.0 sur mon hôte local ...". Que faire quand ça devient
[Laravel] Comment gérer une erreur de mémoire insuffisante lorsque le compositeur a besoin de [Docker]
Je crée une application Android et elle est bloquée par des erreurs et comment la résoudre
J'obtiens une erreur lors de l'ajout d'une dépendance
Comment supprimer le tweet associé à l'utilisateur lorsque vous le supprimez en même temps
J'ai essayé d'appeler une vidéo YouTube de DB avec haml et de l'afficher intégrée
[Ruby] 5 erreurs courantes qui ont tendance à se produire lors du scraping avec Selenium et comment les gérer
[Java] Comment rompre une ligne avec StringBuilder
Je peux déployer sur heroku, mais j'obtiens une erreur et je ne peux pas l'ouvrir [Cause: MySQL]
[Terraform] Docker résout le délai d'expiration lors de la tentative de création de ressources Azure sur une machine Windows
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Comment spécifier la base de données lors de la création d'une application avec des rails
J'ai une exception InvalidUseOfMatchersException lors de l'utilisation de l'un dans le simulateur de JUnit
Comment gérer l'erreur ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError)
Comment gérer différentes versions de rbenv et Ruby
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
Mémorandum: Quand j'ai essayé TensorFlow avec Tribuo, cela n'a pas fonctionné, alors je suis parti en voyage pour retrouver le chef de famille et je me suis perdu.
[Rails / RSpec] Comment traiter l'élément a une erreur de taille nulle
Une erreur 404 se produit lors du test de l'authentification par formulaire avec Spring Security
J'obtiens une erreur de version de Ruby lorsque j'essaye de démarrer Rails.
Comment lire un fichier et le traiter comme une entrée standard
[Introduction à JSP + Servlet] J'ai joué avec pendant un moment ♬
Comment définir une taille de récupération par défaut si jOOQ obtient une erreur OOM lors de la récupération d'un énorme jeu de résultats
Je souhaite télécharger un fichier sur Internet en utilisant Ruby et l'enregistrer localement (avec prudence)
Quand j'ai essayé de créer un environnement pour PHP7.4 + Apache + MySQL avec Docker, je suis resté bloqué [Windows & Mac]