エラー
500 server error
基本的に、サーバーに内部的な問題がある(そしてリクエストをレンダリングできない)すべての時間のカバーです
Railsのエラー処理は、すべてのエラーを/public
内の一連のファイルにルーティングします 422.html
というディレクトリ 、404.html
および500.html
-最も一般的なエラーを表す
500エラーが表示される理由は、アプリ内の何かである可能性があります。これを修正するために私がすることは次のとおりです:
環境
本番環境でエラーが発生します。つまり、環境との違いが問題の原因になります
まず、何が変わっているのかを見ていきます。通常、問題の原因となっているのはDB、または一部の環境設定(異なるDBプロバイダーなど)です
DB
最も一般的な500エラーは、開発環境と本番環境の間のDBの不整合が原因で発生します。 mongoidについてはわかりませんが、MYSQL / PGSQLのようなものでは、問題は本番環境で移行しないことに関係します:
heroku run rake db:migrate
通常、本番環境でのほとんどのデータベースの問題を修正します
例外通知
例外通知 と呼ばれる非常に優れた宝石があります (Railsコアから抽出)、電子メールでエラー通知を送信するミドルウェアの一部:
#config/environments/production.rb
config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "Subject",
:sender_address => %{"notifier" <[email protected]>},
:exception_recipients => %w{[email protected]}
}
SendGridアドオン
を入手する必要があります Herokuでこれをproduction.rb
に追加します :
#config/environments/production.rb
config.action_mailer.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}