Ruby on Railsで画像アップロード機能を実装している時に、以下のエラーが発生しました。
No template found for UsersController#update, rendering head :no_content Completed 204 No Content in 115ms
この記事には、上のエラーを解決する方法を書いています。
エラーの説明
「UsersController#update」のところはエラーが発生しているコントローラのメソッド。
人によって違うところですね。
今回はこのこの通りUsersControllerのupdateメソッドとして進めていきます。
このエラーは以下のようなことを示しています。
「UsersController#update」の実行後に表示するテンプレート探したけど、無かったで。
レンダリング先の中身、無かったし。
※間違えていたら教えてくださいm(_ _)m
エラーの解決方法
users/update.html.erbを作成する
単純にビューファイルが存在しないという原因が考えれます。
もしupdateメソッドに対応したビューファイルが必要で、このエラーが出るのであればファイルの存在を確認してみてください。
しかし、今回の僕のupdateメソッドにはビューは必要なかったので、こちらのエラーではありません。
updateメソッドにリダイレクト先を指定する
updateメソッドが実行された後に画面が遷移せず固まったのでは無いでしょうか。
その原因はredirect to でリダイレクト先が提示されていなかったこと、だと思います。
僕の場合はredirect_toを書き忘れていただけでした。
なので以下のように、書き加えると直るはずです。
参考記事:No template found for UsersController#create, rendering head :no_content
終わりに
単純なエラーの解決方法でした。今回のエラーはおそらくググればすぐ他の記事も出てきて、解決できるエラーですね。
しかし、プログラミングをやっているとなかなか1人じゃ解決できないエラーに遭遇するときもあります。実際にぼくもかなり苦しんだ経験が何回も。
僕のように苦しむのは時間も心もムダになるので、役立ったエラー解決サービスを紹介する記事を書きました。
ついでに読んでみてください!