ActionView::MissingTemplate Railsエラー問題の解決するための考え方 その2 ~番外編~

・投稿はできるがtext, image_urlが保存されない

ActionView::MissingTemplate in Tweets#used in~と記載されており、この場合は部分テンプレートに問題がある為、app/controllers/tweets_controller.rbを見に行く。

→41行目に{ user_id: current_user.id }と記載あるが、部分テンプレートの受け先に記載されているはずの、params.permitが無い。

→params.permit(:image, :text).merge(user_id: current_user.id)と追記して正解。

 ※merge2つのハッシュを結合したい時に使う、今回の場合、(:image, :text)と(user_id: current_user.id)を結合する必要があるため。

 

・投稿後にlocalhost:3000/にアクセスするとActionView::MissingTemplate in Tweets#indexのエラーが起きる。

もしくは、画面が遷移をせず、ターミナルを確認するとNo template found for CommentsController#createのエラーが表示されている。

ActionView::MissingTemplate in Tweets#indexと記載があるので、この場合はファイル名が間違っている可能性があるので、tweetstweets.html.erbを見に行く。

部分テンプレートのファイル名は必ず_がある必要があるが、書かれていない。

よって、_tweetstweets.html.erbとファイル名を変更して正解。