2020/11/27 8hレベル上げ
今日の内容
・ユーザー管理機能のバリデーションの修正
バリデーションを設定
”@”がないとエラーになるというバリデーションを設定したかったが
inclusion: { in: "@" }
と入力したがうまく表示されなかった
”@”がないとエラーになるというバリデーションはdeviseに元から導入されているので改めて書く必要のないものだった。
数字と文字を含める
validates :password, format: { with: /\A(?=.*?[a-z])(?=.*?\d)\w{6}\z/
空だと保存できない、全角ひらがな、全角カタカナ、漢字でないと保存できない
validates :sei, presence: true, format: { with: /\A[ぁ-んァ-ン一-龥]+\z/ }
・新規登録のテストコード作成
テストコードはエラーメッセージ名を変更した際はそっちに合わせないと保存できない
validates :password, format: { message: "Include both letters and numbers" }
it 'passwordが半角英数字混合でないと登録できない' do
@user.password = 'aaaaaa'
@user.valid?
expect(@user.errors.full_messages).to include('Password Include both letters and numbers')
end
感想
思ったよりエラーがでてしまう
バリデーション 、deviseの理解が浅いので時間がある時にまとめを作りたい
今日の一言
『諦めたらそこで試合終了』