[rails]deviseを用いて作成したモデルのpasswordの文字数制限を変える方法


この記事ではrails5.2.3を使用しています

概要

プログラミングスクールでログイン機能付きのフリマアプリを作成した際に、deviseのデフォルトの文字数制限(パスワードの最小文字数)を変更しなければならなかったので、備忘録として記録します。

私が調べて見つけた方法は2種類です。

1.deviseのデフォルトの設定を変える

config/initializers/devise.rb
のファイルに、deviseのデフォルトの設定が記載されています。


config.password_length = 6..128

この部分がpasswordの最小~最大文字数(デフォルトでは6~128文字)を制限している部分なので、ここの数字をいじれば変更できます。

2.deviseを使用するモデルに記述する

モデルファイルにバリデーションをかけて文字数を制限する方法です。


rails g devise モデル名

で作成したモデルファイルに

devise :validatable, password_length: 最小数..最大数

と記載することで文字数を制限することができます。

他にも方法はあるようですが、この二つはとても簡単だったので参考にさせていただきました。

参考