回答編集履歴

2

誤字を修正

2018/03/18 01:58

投稿

mingos
mingos

スコア4025

test CHANGED
@@ -102,6 +102,8 @@
102
102
 
103
103
 
104
104
 
105
+
106
+
105
107
  ## 追記
106
108
 
107
109
 
@@ -128,9 +130,9 @@
128
130
 
129
131
 
130
132
 
131
- エラー内容をとりあえず全部出した場合、user.errors.full_messagesとすると配列でエラーが返ってきます。
133
+ エラー内容を全部知り場合、user.errors.full_messagesとすると配列でエラーメッセージが返ってきます。
132
134
 
133
- flashに全部入れたいので、改行(\n)で結合して格納する例を示します。
135
+ flash[:notice]に全部入れたいので、改行(\n)で結合して格納する例を示します。
134
136
 
135
137
 
136
138
 

1

バリデーションのエラー内容を表示する方法を追記しました

2018/03/18 01:58

投稿

mingos
mingos

スコア4025

test CHANGED
@@ -99,3 +99,71 @@
99
99
  end
100
100
 
101
101
  ```
102
+
103
+
104
+
105
+ ## 追記
106
+
107
+
108
+
109
+ このようにモデルを定義しているとすると、user.valid?を実行した後、
110
+
111
+ バリデーションのエラーがある場合、user.errorsにエラー内容が格納されます。
112
+
113
+
114
+
115
+ ```ruby
116
+
117
+ class User < ApplicationRecord
118
+
119
+ validates :email, {presence: true, uniqueness: true}
120
+
121
+ validates :password, {presence: true}
122
+
123
+ validates :repassword, {presence: true}
124
+
125
+ end
126
+
127
+ ```
128
+
129
+
130
+
131
+ エラー内容をとりあえず全部出した場合、user.errors.full_messagesとすると配列でエラーが返ってきます。
132
+
133
+ flashに全部入れたいので、改行(\n)で結合して格納する例を示します。
134
+
135
+
136
+
137
+ ```ruby
138
+
139
+ class XXXControler < ApplicationController
140
+
141
+
142
+
143
+ def create
144
+
145
+ @user = ...
146
+
147
+ ...
148
+
149
+ unless @user.valid?
150
+
151
+ #flash[:notice] = "please write email or password"
152
+
153
+ flash[:notice] = @user.errors.full_messages.join("\n")
154
+
155
+ render action: :new
156
+
157
+ return
158
+
159
+ end
160
+
161
+ ...
162
+
163
+ end
164
+
165
+
166
+
167
+ end
168
+
169
+ ```