質問編集履歴
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,7 +40,8 @@
|
|
40
40
|
|
41
41
|
こちらを参考に、以下のように編集したのですが、今度はバリデーションがかからなくなってしまいました。(編集はできます)
|
42
42
|
|
43
|
-
```
|
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
|
+

|