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

回答編集履歴

2

修正

2020/10/23 01:18

投稿

rhiroe
rhiroe

スコア2352

answer CHANGED
@@ -28,7 +28,11 @@
28
28
  該当箇所でデバッグしてください。もしくは
29
29
 
30
30
  ```rb
31
+ Prototype.create!(prototype_params)
32
+
31
33
  if @prototype.save!
32
34
  ```
33
35
 
34
- のように`save`の代わりに`save!`メソッドを使うと失敗したときに例外を発生させるようになるので原因を画面から確認できると思います。
36
+ のように`create`や`save`の代わりに`create!`や`save!`メソッドを使うと失敗したときに例外を発生させるようになるので原因を画面から確認できると思います。
37
+
38
+ あと`create`メソッドは`save`の処理も含まれているのでメソッド内の処理としてはおかしなことになってます。

1

修正

2020/10/23 01:18

投稿

rhiroe
rhiroe

スコア2352

answer CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
  ```rb
16
16
  def create
17
- @prototype = Prototype.create(prototype_params)
17
+ @prototype = Prototype.create(prototype_params) # ROLLBACKの発生源は多分ココ
18
18
  if @prototype.save
19
- # ^^^^^^^^^^^^^^^^^^
19
+ # ^^^^^^^^^^^^^^^^^^ 一度保存に失敗しているものはもう一度保存しても失敗する
20
20
  redirect_to root_path
21
21
  else
22
22
  render :new