teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2020/09/11 13:01

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,8 @@
40
40
 
41
41
  こちらを参考に、以下のように編集したのですが、今度はバリデーションがかからなくなってしまいました。(編集はできます)
42
42
 
43
- ```ruby
43
+ ```rails
44
+
44
45
  validate :password_complexity
45
46
  def password_complexity
46
47
  return if password.blank? || password =~ /\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i
@@ -54,4 +55,32 @@
54
55
  ### 補足情報(FW/ツールのバージョンなど)
55
56
 
56
57
  rails 6.0
57
- devise 4.7.2
58
+ devise 4.7.2
59
+
60
+ ### エラー表記の追記
61
+ 下記のバリデーションを設定し、英数字8文字以上のパスワードを用いて新規ユーザーを作成しました。(ここではちゃんと英字のみのパスワードは設定不可でした)
62
+ ```rails
63
+ VALID_PASSWORD_REGEX = /\A(?=.*?[a-z])(?=.*?\d)[a-z\d]+\z/i
64
+ validates :name, presence: true
65
+ validates :password, format: { with: VALID_PASSWORD_REGEX }
66
+ ```
67
+ 次にusersコントローラーのupdateアクションに!を追加してユーザー編集を行ったところ、
68
+ ```rails
69
+ def edit
70
+ end
71
+
72
+ def update
73
+ if current_user.update!(user_params)
74
+ redirect_to user_path(current_user)
75
+ else
76
+ render :edit
77
+ end
78
+ end
79
+
80
+ private
81
+ def user_params
82
+ params.require(:user).permit(:name, :email)
83
+ end
84
+ ```
85
+ このようなエラーメッセージが出ます。
86
+ ![ error](7c5c24b7694c5585f8952cb26ef9b381.png)