回答編集履歴

2 修正

Mugheart

Mugheart score 2317

2020/10/23 10:18  投稿

> prototypeの部屋を作りたい
しかし保存しようとすると何も起きず
エラーも出ません
それをどうにかしたいです
何も起きてないことはないと思います。
```text
app/controllers/prototypes_controller.rb:12:in `create'
  (0.1ms) ROLLBACK
```
ROLLBACKが発生しているので
```rb
 def create
   @prototype = Prototype.create(prototype_params) # ROLLBACKの発生源は多分ココ
   if @prototype.save
#  ^^^^^^^^^^^^^^^^^^ 一度保存に失敗しているものはもう一度保存しても失敗する
      redirect_to root_path
   else
     render :new
   end
 end
```
ここで保存に失敗し、`render :new`が実行されています。
該当箇所でデバッグしてください。もしくは
```rb
Prototype.create!(prototype_params)  
 
if @prototype.save!
```
のように`save`の代わりに`save!`メソッドを使うと失敗したときに例外を発生させるようになるので原因を画面から確認できると思います。
のように`create`や`save`の代わりに`create!`や`save!`メソッドを使うと失敗したときに例外を発生させるようになるので原因を画面から確認できると思います。
あと`create`メソッドは`save`の処理も含まれているのでメソッド内の処理としてはおかしなことになってます。
1 修正

Mugheart

Mugheart score 2317

2020/10/23 10:16  投稿

> prototypeの部屋を作りたい
しかし保存しようとすると何も起きず
エラーも出ません
それをどうにかしたいです
何も起きてないことはないと思います。
```text
app/controllers/prototypes_controller.rb:12:in `create'
  (0.1ms) ROLLBACK
```
ROLLBACKが発生しているので
```rb
 def create
   @prototype = Prototype.create(prototype_params)
   @prototype = Prototype.create(prototype_params) # ROLLBACKの発生源は多分ココ
   if @prototype.save
#  ^^^^^^^^^^^^^^^^^^
#  ^^^^^^^^^^^^^^^^^^ 一度保存に失敗しているものはもう一度保存しても失敗する
      redirect_to root_path
   else
     render :new
   end
 end
```
ここで保存に失敗し、`render :new`が実行されています。
該当箇所でデバッグしてください。もしくは
```rb
if @prototype.save!
```
のように`save`の代わりに`save!`メソッドを使うと失敗したときに例外を発生させるようになるので原因を画面から確認できると思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る