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

質問編集履歴

1

controllerを追記しました

2021/12/07 02:02

投稿

kokosi1062
kokosi1062

スコア39

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,7 @@
2
2
  ①ユーザー編集のときだけモデルに設定しているパスワードのバリデーションを解除し、
3
3
    パスワード変更欄が空欄のままでもユーザー編集ができるようにする
4
4
  ②新規登録はバリデーション有効です
5
+ ③deviseのコントローラーviewは使っていません
5
6
 
6
7
  ユーザー編集画面で、nameは入力済み、パスワードと確認用パスワードは空白です。
7
8
  その状態で更新すると、パスワードだけ入力してくださいメッセージが表示されます。
@@ -47,4 +48,26 @@
47
48
  <%= f.password_field :password_confirmation, placeholder:"パスワードを再入力してください"%>
48
49
  <%= f.error_message(:password_confirmation) %>
49
50
  </div>
51
+ ```
52
+
53
+ ```
54
+ controller.rb
55
+
56
+ def update
57
+ @user.update_with_password(user_params)
58
+ if @user.valid?
59
+ @user.save!
60
+ redirect_to users_path
61
+ else
62
+ render action: :edit
63
+ end
64
+ end
65
+
66
+ def set_user
67
+ @user = User.find(params[:id])
68
+ end
69
+
70
+ def user_params
71
+ params.require(:user).permit(:name, :password, :password_confirmation)
72
+ end
50
73
  ```