NoMethodError in MemosController#create

エラー発生状況

フォームに入力した値をデータベースに移行させる処理の時に、Controllerアクションでエラーが発生した。

エラー発生のコード

def create
#新しいメモがフォームからPostされたときに動作するアクション
Memo.create(title:params[“memos”][“title”],body:params[“title”][“body”])
redirect_to “/”
end

エラーの原因

NoMethodError in MemosController#create

というエラーなので、Memos Controllerのなかのcreateアクションに、メソッドエラーが出ているということでした。

undefined method `[]’ for nil:NilClass

というエラーメッセージがあったので、「nilに対して[ ]メソッドは定義されてませんよ」という意味が分かったので、[ ]の中のどれかが間違っているのだと推測しました。

エラーの解決方法

[ ]の中が怪しいと思ったところ、間違っている箇所を発見(下記の赤字部分)。

誤:body:params[“title”][“body”]

正:body:params[“memos”][“body”]

def create
#新しいメモがフォームからPostされたときに動作するアクション
Memo.create(title:params[“memos”][“title”],body:params[“title”][“body”])
redirect_to “/”
end

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です