[RUBY] Erreur ActiveRecord :: NotNullViolation dans Devise

【Aperçu】

1. Conclusion </ b>

2. Qu'est-ce que ActiveRecord :: NotNullViolationt </ b>

3. Pourquoi ActiveRecord :: NotNullViolation dans Devise </ b>

4. Comment le résoudre </ b>

5. Supplément </ b>

  1. Conclusion

dans db / migrate / "" "" devise_create "" "" ".rb Supprimez la description de "t.string password (ou password_confirmation)" </ b>!


2. Qu'est-ce que ActiveRecord :: NotNullViolationt?

スクリーンショット 2020-08-29 20.47.37.png

Cela signifie que "Les éléments qui ne doivent pas être laissés vides (NULL) en raison des règles de base de données sont sur le point d'être enregistrés en tant que données! Vous ne pouvez pas faire cela!" </ B> C'est souligné!


3. Pourquoi ActiveRecord :: NotNullViolation dans Devise

Lorsqu'il est multiplié par 2, il dit: "Les éléments qui ne doivent pas être laissés vides (NULL) sur l'appareil sont sur le point d'être sauvegardés en tant que données! C'est quand ils sont sauvegardés et enregistrés sur le contrôleur!" ..

La raison en est que gem'devise 'a créé un mot de passe pour moi. J'essaye de le refaire, donc je ne sais pas quel mot de passe est le meilleur et il semble qu'il soit devenu NULL!

gem'devise 'est un joyau qui crée un mot de passe et une confirmation de mot de passe!

Alors

db/migrate/""""_devise_create_""""".rb


t.string :password null:false"(password_confirmation)

Vous n'avez pas besoin de programmer pour créer des colonnes!


4. Comment résoudre

db/migrate/""""_devise_create_""""".rb


t.string password,  null:false"
(Ou mot de passe_confirmation)

Je pense que c'est écrit, alors supprimons-le!

  1. Supplément

Au fait, gem'devise 'a une autre fonctionnalité ajoutée au mot de passe!

C'est la validation </ b>!

Puisqu'il y a déjà une restriction en tant que fonction de sorte que vous ne pouvez pas entrer à moins que ce soit 6 caractères ou plus

model/user


validates :password, length { minimum: 5 }

Pas besoin de lister!

Recommended Posts