ActiveRecord::NotNullViolation in Devise 오류

【개요】



1. 결론

2.ActiveRecord::NotNullViolationt란 무엇인가

3. 왜 ActiveRecord::NotNullViolation in Devise가 되는지

4. 어떻게 해결할까

5. 보충

1. 결론



db/migrate/""""devise_create""""".rb
기재되어 있는 "t.string password(또는 password_confirmation)"의 기재를 삭제한다!

2.ActiveRecord::NotNullViolationt란 무엇인가





이 의미는, 「DB의 규칙상, 공란(NULL)으로 해서는 안 되는 항목이 데이터로 보존되고 걸렸어요!그런 일을 해서는 안 됩니다!

3. 왜 ActiveRecord::NotNullViolation in Devise가 되는지



2.와 합치면, 「디바이스로 DB의 규칙상, 공란(NULL)으로 해서는 안되는 항목이 데이터로 보존되어 걸었습니다! ! "라고 가고 있습니다.

왜 이런 일이 되는가 하면, gem'devise'가 일부러 password를 만들어 주었는데,
씌워 만들려고 하고 있으므로 어느 password가 좋은지 모르게 NULL이 되었다고 생각됩니다!

gem'devise'라는 것은 password와 그에 대한 password_confirmation을 만들어주는 gem입니다!

그래서

db/migrate/""""_devise_create_""""".rb
t.string :password null:false"(password_confirmation)

를 프로그래밍하여 열을 만들 필요가 없습니다!

4. 어떻게 해결할까



db/migrate/""""_devise_create_""""".rb
t.string password,  null:false"
(またはpassword_confirmation)

라고 기재되어 있다고 생각하므로 삭제합시다!

5. 보충



그건 그렇고, gem 'devise'에는 password에 대한 또 다른 추가 기능이 있습니다!

그것은 밸리데이션입니다!

6자 이상으로 하지 않으면 입력을 할 수 없도록 제한이 이미 기능으로 갖추어져 있으므로,

model/user
validates :password, length { minimum: 5 }

작성할 필요가 없습니다!

좋은 웹페이지 즐겨찾기