【Rails】bcryptを使ったバリデーションの注意点




Railsのbcryptというgemを使えば、password_digestカラムに暗号化されたパスワードを保存できるようになります。

パスワードはpassword_digestカラムに保存されますが、passwordの記述をすべてpassword_digestに直さなくてもアプリは動くのです・

例えばuser_controller.rbのcreateアクションで

というようにpasswordカラムと指定してもエラーは出ません。

ぼくもcreateアクションではこのように記述していました。

 

しかしながら、バリデーションを指定するときは要注意。

ついこの流れで

ではなく、

とやってしまいそうですが、これでは問題が起きてしまうのです。

 

ぼくの場合この

という記述が原因で、データベースに不具合が起きてアプリがうまく機能しない問題が発生しました。

ぼくはここでハマって数時間ロスしてしまいましたが、バリデーションの記述を

に変更したところ、アプリの不具合が解消。

bcryptでパスワードを暗号化している方は、password_digestカラムにバリデーションをかけましょう。

 

 

追記

いや、と思ったら、じつは

bcryptにはバリデーションが標準装備されているようですね。

だからこの記述を書かなくても大丈夫のようです笑

お騒がせしました。

 

パスワードのバリデーションを書かないか、password_digestで書くかのいずれかになりますね!

 

 

それでは!

Lin

Pocket
LINEで送る




音生入力で楽にブログを書く技が満載!
ブログ音声入力術

音声入力の使い方から文章を書くコツまで完全網羅。ブログを書きたいすべての人向けの電子書籍




コメントを残す

メールアドレスが公開されることはありません。