LoginSignup
1
0

ActionController::UnknownFormat エラーの解決法

Posted at

今回は、個人的に解決するのに時間がかかったエラーだったのでメモに残そうと思います。

もし、同じエラーで悩まれている方がいれば参考になれば嬉しいです!

まだ、初学者なので間違っているところがあればご指摘ください。

エラーが発生した流れ

やりたいこと:ログイン機能を実装したい。

user_sessionsコントローラーを作り、それに対応するnew.html.erbのviewも作成。

ログイン画面をブラウザ表示しようとしたところ以下のエラーが発生。

ActionController::UnknownFormat

今回、発生したエラー文です。

ActionController::UnknownFormat (UserSessionsController#new is missing a template for this request format and variant.

request.formats: [“text/html”]
request.variant: []

NOTE! For XHR/Ajax or API requests, this action would normally respond with 204 No Content: an empty white screen. Since you’re loading it in a web browser, we assume that you expected to actually render a template, not nothing, so we’re showing an error to be extra-clear. If you expect 204 No Content, carry on. That’s what you’ll get from an XHR or API request. Give it a shot.):

エラーの原因

調べてみたところ、次の一文がヒントになるようです。

UserSessionsController#new is missing a template for this request format and variant.

リクエストされたフォーマットに対して、テンプレートがないよという意味みたいです。

つまり、今回で言うと、UserSessionsController#newに対応するviewがないため発生したエラーのようです。

解決法

今回のエラーはリクエストされたフォーマットに対してのviewがないことが原因でした。

ですが、UserSessionsController#newに対応するviewである、new.html .erbは存在していますし、user_sessions配下に配置もしています。

なぜエラーが解消されないのか?

もう一度view名を確認してみました。

new.html .erb

よくよくみると、htmlの後に半角スペースが空いていることに気づきました。

new.html.erb

半角スペースを消して、リロードすると、無事ログイン画面が表示されました!

まとめ

小さな半角スペースがあるだけでも、エラーが発生してしまうことを今回身をもって知ることができました。

また、同じエラーが起きた場合は、焦らず細かい部分もしっかりみていこうと思います。

最後まで、読んでいただきありがとうございます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0