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

質問編集履歴

4

保存失敗時のエラー追加

2019/09/16 01:27

投稿

ryousukesatou
ryousukesatou

スコア19

title CHANGED
File without changes
body CHANGED
@@ -24,6 +24,27 @@
24
24
  redirect_to bookers_path
25
25
  end
26
26
 
27
+ 更新
28
+
29
+ NoMethodError in Bookers#create
30
+ Showing /vagrant/Bookers/app/views/bookers/index.html.erb where line #11 raised:
31
+
32
+ undefined method `each' for nil:NilClass
33
+ Extracted source (around line #11):
34
+ 9
35
+ 10
36
+ 11
37
+ 12
38
+ 13
39
+ 14
40
+
41
+ </thead>
42
+ <tbody>
43
+ <% @bookers.each do |booker| %>
44
+ <tr>
45
+ <td><%= booker.title %></td>
46
+ <td><%= booker.body %></td>
47
+
27
48
  ```
28
49
 
29
50
  ### 該当のソースコード
@@ -45,6 +66,26 @@
45
66
  render :index
46
67
  end
47
68
  end
69
+
70
+ 更新
71
+
72
+ コントローラーのファイル
73
+ def index
74
+ @bookers = Booker.all
75
+ @booker = Booker.new
76
+ end
77
+
78
+ def create
79
+ booker = Booker.new(booker_params)
80
+ if booker.save
81
+ flash[:notice] = "Successfully create!"
82
+ redirect_to booker_path(booker)
83
+ else
84
+ booker_path
85
+ end
86
+ end
87
+
88
+ ・モデルのファイルに変更はありません。
48
89
  ```
49
90
 
50
91
  ### 試したこと

3

保存失敗時のエラー追加

2019/09/16 01:27

投稿

ryousukesatou
ryousukesatou

スコア19

title CHANGED
File without changes
body CHANGED
@@ -59,4 +59,8 @@
59
59
  ここにより詳細な情報を記載してください。
60
60
  以前に一度モデルを作ったのですが、名前をミスしてrails d model モデル名
61
61
  としてモデルを消してmodelsフォルダの以前にあったファイルを消したら 赤い丸がつきました。
62
- ちなみに、sublime textを使っていて、もしかしたらこれが原因なのかと思いました。
62
+ ちなみに、sublime textを使っていて、もしかしたらこれが原因なのかと思いました。
63
+
64
+ 更新内容
65
+ ・2つのカラムに内容を記述するときのみ保存できてて、どちらかが空欄の時、もしくは両方空欄の時にエラーができるので、バリデーションはできてるのかなと思いました。しかし、保存失敗した時にエラーが発生する状況です。
66
+ ・そのエラー内容と関係のありそうなコードを「更新」と書いた下に書き足します。

2

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

2019/09/16 01:24

投稿

ryousukesatou
ryousukesatou

スコア19

title CHANGED
File without changes
body CHANGED
@@ -38,8 +38,12 @@
38
38
  コントローラーのファイル
39
39
  def create
40
40
  booker = Booker.new(booker_params)
41
- booker.save
41
+ if booker.save
42
+ flash[:notice] = "Successfully create!"
42
- redirect_to booker_path(booker)
43
+ redirect_to booker_path(booker)
44
+ else
45
+ render :index
46
+ end
43
47
  end
44
48
  ```
45
49
 

1

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

2019/09/15 10:18

投稿

ryousukesatou
ryousukesatou

スコア19

title CHANGED
File without changes
body CHANGED
@@ -29,10 +29,18 @@
29
29
  ### 該当のソースコード
30
30
 
31
31
  ```ここに言語名を入力
32
+ モデルのファイル
32
33
  class Booker < ApplicationRecord
33
34
  validates :title, presence: true
34
35
  validates :body, presence: true
35
36
  end
37
+
38
+ コントローラーのファイル
39
+ def create
40
+ booker = Booker.new(booker_params)
41
+ booker.save
42
+ redirect_to booker_path(booker)
43
+ end
36
44
  ```
37
45
 
38
46
  ### 試したこと