質問: ### 前提・実現したいこと railsでバリデーションのエラーメッセージを表示するときに、原因不明のメッセージが追加されます。 この不要なメッセージの発生原因を判明させたいのと、発生させないようにしたいです。 ### 発生している問題・エラーメッセージ ユーザー登録の際にパスワードを7文字〜15文字以内で入力するのですが、6文字以下の時にエラーメッセージが「パスワード は6文字以上で入力してください」、「パスワード は7文字以上で入力してください」と2つ出てきます。 メッセージとして正しいのは7文字以上の方なので、「6文字以上で・・・」のメッセージを表示させないようにしたいのに原因がわかりません。 バリデーションで6という数字をそもそも指定していないのですが。 ### 該当のソースコード userのmodel ``` validates :password, presence: true, length: { minimum: 7, maximum: 15} ``` ビュー ``` - if resource.errors.any? %ul - resource.errors.full_messages_for(:password).each do |message| %li= message ``` ### 補足情報(FW/ツールのバージョンなど) rails(5.2.3) ユーザー登録にgem deviseを使用
回答: deviseを使っている場合、deviseの側でパスワード文字数に制限をかけています。 `config/initializers/devise.rb`あたりに`config.password_length =`として設定されていますので確認しましょう。逆に、そっちを適切に設定すれば自分で別途バリデーションを掛ける必要がないかと思います。