[RUBY] ActiveRecord :: NotNullViolation im Gerätefehler

【Überblick】

1. Schlussfolgerung </ b>

2. Was ist ActiveRecord :: NotNullViolationt </ b>

3. Warum ActiveRecord :: NotNullViolation in Devise </ b>

4. Wie man es löst </ b>

5. Ergänzung </ b>

  1. Fazit

in db / migrate / "" "devise_create" "" ".rb Löschen Sie die Beschreibung von "t.string password (oder password_confirmation)" </ b>!


2. Was ist ActiveRecord :: NotNullViolationt?

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

Dies bedeutet, dass "Elemente, die aufgrund von DB-Regeln nicht leer bleiben sollten (NULL), als Daten gespeichert werden sollen! Das können Sie nicht!" Es wird darauf hingewiesen!


3. Warum ActiveRecord :: NotNullViolation in Devise

Wenn mit 2 multipliziert, heißt es: "Elemente, die auf dem Gerät nicht leer bleiben sollten (NULL), werden als Daten gespeichert! Sie werden gespeichert und beim Controller registriert!" ..

Der Grund dafür ist, dass gem'devise 'ein Passwort für mich erstellt hat. Ich versuche es zu überarbeiten, daher weiß ich nicht, welches Passwort besser ist und es scheint, dass es NULL geworden ist!

gem'devise 'ist ein Juwel, das ein Passwort und eine password_confirmation dafür erstellt!

Damit

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


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

Sie müssen nicht programmieren, um Spalten zu erstellen!


4. Wie zu lösen

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


t.string password,  null:false"
(Oder Passwort_confirmation)

Ich denke, es ist geschrieben, also lasst es uns löschen!

  1. Ergänzung

Übrigens hat gem'devise 'eine weitere Funktion zum Passwort hinzugefügt!

Es ist Validierung </ b>!

Da gibt es bereits eine Einschränkung als Funktion, so dass Sie nur eingeben können, wenn es 6 Zeichen oder mehr ist

model/user


validates :password, length { minimum: 5 }

Keine Notwendigkeit zu listen!

Recommended Posts