質問編集履歴
1
タイトル・見た目修正。中身は変更なし。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Rails6_バリデーションにかかったとき
|
1
|
+
Rails6_バリデーションにかかったときのエラーメッセージを表示できない。
|
test
CHANGED
@@ -9,10 +9,9 @@
|
|
9
9
|
|
10
10
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-17/d6f89799-806d-4441-9857-4da9d8efec33.png)
|
11
11
|
|
12
|
+
models/event.rb
|
12
13
|
バリデーションは、下記を設定しています。
|
13
|
-
|
14
|
+
未入力で「Create Event」をクリックすると、全5項目がバリデーションエラーを起こします。
|
14
|
-
|
15
|
-
models/event.rb
|
16
15
|
```ruby
|
17
16
|
class Event < ApplicationRecord
|
18
17
|
validates :name, length: { maximum: 50 }, presence: true
|
@@ -37,9 +36,8 @@
|
|
37
36
|
end
|
38
37
|
```
|
39
38
|
|
39
|
+
controllers/events_controller.rb
|
40
40
|
バリデーションに引っかかり保存できなかったときは、views/events/new.html.slimをレンダリングします。
|
41
|
-
|
42
|
-
controllers/events_controller.rb
|
43
41
|
```ruby
|
44
42
|
class EventsController < ApplicationController
|
45
43
|
def new
|
@@ -66,8 +64,8 @@
|
|
66
64
|
end
|
67
65
|
```
|
68
66
|
|
67
|
+
views/events/new.html.slim
|
69
68
|
バリデーションエラーを起こした時は、`= render "shared/errors", model: f.object`でエラーメッセージを差し込みます。
|
70
|
-
views/events/new.html.slim
|
71
69
|
```ruby
|
72
70
|
- now = Time.zone.now
|
73
71
|
|
@@ -106,7 +104,7 @@
|
|
106
104
|
```
|
107
105
|
|
108
106
|
### 自分で調べたことや試したこと
|
109
|
-
最低限以下のことはチェックしましたが、解決に至りませんでした。
|
107
|
+
最低限以下のことはチェックしましたが、解決に至りませんでした。
|
110
108
|
- _errors.html.slimのレンダリングは正しくできているか?
|
111
109
|
`- if model.errors.any?`をコメントアウトして、適当なテキストを追加するとブラウザで表示できることを確認できたため、レンダリングすることはできている。
|
112
110
|
|