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




Railsのbcryptを使うときの注意点がある?

Railsのbcryptというgemはまあ便利。

暗号化されたパスワードを保存できるようになります。

このgemを使うと、パスワードはpassword_digestカラムに保存されます。

ただ、passwordの記述をすべてpassword_digestに直さなくてもアプリは動くのですよ。

 

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

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

 

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

ついこの流れで

ではなく、

とやってしまいそうですが、これでは問題が発生します。

 

ぼくの場合、

が原因で、データベースに不具合が起きました。

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

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

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

 

追記

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

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

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

お騒がせしました。

したがって、bcyptを使うときは、

  • パスワードのバリデーションを書かない
  • password_digestで書く

のいずれかになりますね。

 

それでは!

Lin

Pocket
LINEで送る




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

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




コメントを残す

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