質問編集履歴

4

保存失敗時のエラー追加

2019/09/16 01:27

投稿

ryousukesatou
ryousukesatou

スコア19

test CHANGED
File without changes
test CHANGED
@@ -50,6 +50,48 @@
50
50
 
51
51
 
52
52
 
53
+ 更新
54
+
55
+
56
+
57
+ NoMethodError in Bookers#create
58
+
59
+ Showing /vagrant/Bookers/app/views/bookers/index.html.erb where line #11 raised:
60
+
61
+
62
+
63
+ undefined method `each' for nil:NilClass
64
+
65
+ Extracted source (around line #11):
66
+
67
+ 9
68
+
69
+ 10
70
+
71
+ 11
72
+
73
+ 12
74
+
75
+ 13
76
+
77
+ 14
78
+
79
+
80
+
81
+ </thead>
82
+
83
+ <tbody>
84
+
85
+ <% @bookers.each do |booker| %>
86
+
87
+ <tr>
88
+
89
+ <td><%= booker.title %></td>
90
+
91
+ <td><%= booker.body %></td>
92
+
93
+
94
+
53
95
  ```
54
96
 
55
97
 
@@ -92,6 +134,46 @@
92
134
 
93
135
  end
94
136
 
137
+
138
+
139
+ 更新
140
+
141
+
142
+
143
+ コントローラーのファイル
144
+
145
+ def index
146
+
147
+ @bookers = Booker.all
148
+
149
+ @booker = Booker.new
150
+
151
+ end
152
+
153
+
154
+
155
+ def create
156
+
157
+ booker = Booker.new(booker_params)
158
+
159
+ if booker.save
160
+
161
+ flash[:notice] = "Successfully create!"
162
+
163
+ redirect_to booker_path(booker)
164
+
165
+ else
166
+
167
+ booker_path
168
+
169
+ end
170
+
171
+ end
172
+
173
+
174
+
175
+ ・モデルのファイルに変更はありません。
176
+
95
177
  ```
96
178
 
97
179
 

3

保存失敗時のエラー追加

2019/09/16 01:27

投稿

ryousukesatou
ryousukesatou

スコア19

test CHANGED
File without changes
test CHANGED
@@ -121,3 +121,11 @@
121
121
  としてモデルを消してmodelsフォルダの以前にあったファイルを消したら 赤い丸がつきました。
122
122
 
123
123
  ちなみに、sublime textを使っていて、もしかしたらこれが原因なのかと思いました。
124
+
125
+
126
+
127
+ 更新内容
128
+
129
+ ・2つのカラムに内容を記述するときのみ保存できてて、どちらかが空欄の時、もしくは両方空欄の時にエラーができるので、バリデーションはできてるのかなと思いました。しかし、保存失敗した時にエラーが発生する状況です。
130
+
131
+ ・そのエラー内容と関係のありそうなコードを「更新」と書いた下に書き足します。

2

コントローラーのファイルの部分を変えました。

2019/09/16 01:24

投稿

ryousukesatou
ryousukesatou

スコア19

test CHANGED
File without changes
test CHANGED
@@ -78,9 +78,17 @@
78
78
 
79
79
  booker = Booker.new(booker_params)
80
80
 
81
- booker.save
81
+ if booker.save
82
82
 
83
+ flash[:notice] = "Successfully create!"
84
+
83
- redirect_to booker_path(booker)
85
+ redirect_to booker_path(booker)
86
+
87
+ else
88
+
89
+ render :index
90
+
91
+ end
84
92
 
85
93
  end
86
94
 

1

コントローラーの保存する部分のコードを足しました。

2019/09/15 10:18

投稿

ryousukesatou
ryousukesatou

スコア19

test CHANGED
File without changes
test CHANGED
@@ -60,6 +60,8 @@
60
60
 
61
61
  ```ここに言語名を入力
62
62
 
63
+ モデルのファイル
64
+
63
65
  class Booker < ApplicationRecord
64
66
 
65
67
  validates :title, presence: true
@@ -67,6 +69,20 @@
67
69
  validates :body, presence: true
68
70
 
69
71
  end
72
+
73
+
74
+
75
+ コントローラーのファイル
76
+
77
+ def create
78
+
79
+ booker = Booker.new(booker_params)
80
+
81
+ booker.save
82
+
83
+ redirect_to booker_path(booker)
84
+
85
+ end
70
86
 
71
87
  ```
72
88