ProgateのRailsで「We’re sorry, but something went wrong.If you are the application owner check the logs for more information.」が出たときの対処法


ProgateでRailsを勉強している際に、あまり見慣れないエラーメッセージに遭遇しました。
お問い合わせすることなく、解決したので記載します。

症状

エラーの内容は、

「We’re sorry, but something went wrong.If you are the application owner check the logs for more information.」


日本語だと、

「申し訳ありませんが、問題が発生しました。アプリケーションの所有者である場合は、ログで詳細を確認してください。」


スタックトレースなど出ていないため、今回コードに手を入れたところでエラー箇所を類推する必要がありました。

また、特定の画面ではなく、どの画面でもこのメッセージが出てくる模様。


ちなみに、Railsの道場コースⅢの「ログアウト機能を作ろう」で発生しました。

解決策

下記の記事を参照して、View側のRubyの処理がエラーの原因になっていると推察できました。
Viewの編集中に「We’re sorry, but something went wrong.If you are the application owner check the logs for more information.」と表示された

さらに、どの画面URLでも同様の症状が出ていることから、Viewの共通部分である「application.html.erb」に該当のエラーがあると断定。

さらに、どの画面URLでも同様の症状が出ていることから、Viewの共通部分である「application.html.erb」に該当のエラーがあると特定できました。

エラーの原因となっていたのは下記でした。

progate_logout.rb
<%= link_to("エラーしている箇所", "/index",{method :post}) %>

そしてこのように直して解決。

progate_logout.rb
<%= link_to("エラーしている箇所", "/index",{method: "post"}) %>

原因

ViewでRubyコードを記述するための<%= %>で構文ミス同じ怒られ方をしてしまったので、<%= %>で構文ミスすると発生する模様。
今回の場合は、{}の中の:の位置がおかしかったせいで、このように怒られたみたいです。
(postのダブルクオートだけ直したら、怒られなくった)

お問い合わせすることなく、解決できたので一件落着。