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

質問編集履歴

2

エラー

2020/05/31 08:30

投稿

whoiwhoi
whoiwhoi

スコア48

title CHANGED
File without changes
body CHANGED
@@ -22,6 +22,8 @@
22
22
  #<ActiveRecord::RecordInvalid: Validation failed: password 英数字8文字以上>
23
23
  ```
24
24
 
25
+ "英数字8文字以上"はpasswordのバリデーションに設定した、エラーメッセージです。
26
+
25
27
  ### 実現したいこと
26
28
 
27
29
  エラーを解決し、ユーザー名を更新できるようにしたいです。
@@ -66,7 +68,7 @@
66
68
 
67
69
  パスワードのバリデーションを外すと、ユーザー名を更新してデータベースに保存することができました。
68
70
 
69
- また、updateメソッドの!を記述せずアクションを実行したところ、レンダーしたjsonには更新したユーザー名になっていました。
71
+ また、updateメソッドの```!```を記述せずアクションを実行したところ、レンダーしたjsonには更新したユーザー名が反映されていました。
70
72
  しかし、getメソッドでユーザー情報を取得したところ名前が更新されていなかったので、データベースには保存できていないようでした。
71
73
 
72
74
  ### 補足情報(FW/ツールのバージョンなど)

1

試したこと

2020/05/31 08:30

投稿

whoiwhoi
whoiwhoi

スコア48

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
  class UsersController < ApplicationController
5
5
  def update
6
6
  @user = User.find(params[:id])
7
- @user.update(user_params)
7
+ @user.update!(user_params)
8
8
  render json: @user
9
9
  end
10
10
 
@@ -66,6 +66,9 @@
66
66
 
67
67
  パスワードのバリデーションを外すと、ユーザー名を更新してデータベースに保存することができました。
68
68
 
69
+ また、updateメソッドの!を記述せずアクションを実行したところ、レンダーしたjsonには更新したユーザー名になっていました。
70
+ しかし、getメソッドでユーザー情報を取得したところ名前が更新されていなかったので、データベースには保存できていないようでした。
71
+
69
72
  ### 補足情報(FW/ツールのバージョンなど)
70
73
 
71
74
  - rails 6