7

new.html.erb次のコードで名前が付けられたビューがあります。

<%= some_non_existent_thing.imaginary_method %>

今、次のような単純な 500 エラー ページが 1 つだけ表示されます。

500 内部サーバー エラー
あなたがこの Web サイトの管理者である場合は、この Web アプリケーションのログ ファイルや Web サーバーのログ ファイルを読んで、問題の原因を特定してください。

例外に関する情報が記載されたきれいにフォーマットされたページが表示されるべきではないですか?

ここで何か見落としているかどうかはわかりませんが、ビューに何か問題がある場合、レールは開発環境で完全なエラーページを表示していたと思います。

4

4 に答える 4

7

開発環境を実行していることを確認しますか?RAILS_ENV=developmentそれまたはあなたが実行していることを確認してくださいrails server -e development

次に、development.rbファイルを確認します。次の行が含まれているはずです。

config.consider_all_requests_local = true
于 2013-03-22T10:23:56.817 に答える
0

まず、アントンが以下の回答で言及しているように、あなたが持っていることを確認してくださいconfig/environments/development.rb

config.consider_all_requests_local = true

サーバーを開発モードで実行していること。

上記を確認しましたが、それでもエラーが発生しました。私のロガーにいくつかのエラーがあったため、これは私の場合に発生しました。String#%ログをフォーマットするメソッドを使用するカスタム ログ フォーマッタを使用していました。%非常にバグがあるようで、これらすべての奇妙なエラーにつながります。debuggerコントローラー メソッドに行を追加し、暗黙的なレンダー関数呼び出しにステップスルーすることで、これを理解しました。バグにヒットし、malformed format stringエラーとして報告しました。

これは以前使用していたログ フォーマッタであり、バグの原因でした [初期化ファイルに追加しました]:

class Logger::SimpleFormatter
  def call(severity, time, progname, msg)
    "%-7s #{msg}\n" % severity
  end
end

これらの変更により、バグが修正されました。

class Logger::SimpleFormatter
  def call(severity, time, progname, msg)
    severity_prefix = "[#{severity}]".ljust(7)
    "#{severity_prefix} #{msg}\n"
  end
end
于 2013-03-21T17:08:33.303 に答える
0

例外内に例外が発生した場合、Rails にはそれをキャッチして次のコピーで FAILSAFE_RESPONSE を返すミドルウェアがあります

500 内部サーバー エラー あなたがこの Web サイトの管理者である場合は、この Web アプリケーションのログ ファイルや Web サーバーのログ ファイルを読んで、問題の原因を特定してください。

これをトラブルシューティングする良い方法は、カスタム エラー コードをRails 4.2.0 ガイドで提供されているサンプル コードと比較することです。

そのセクション全体がRails 5.0.0 ガイドで削除されたため、特定のバージョンを指しています。

理想的には、この問題が発生しないように、エラー ビュー、レイアウト、およびコントローラーをできるだけロジックから解放する必要があります。

于 2021-09-03T10:59:14.900 に答える
0

これは、if ステートメントの末尾がない場合など、コードがコンパイルできない場合に発生します。

于 2013-10-31T20:20:39.850 に答える