アプリでエラーを処理するためにexception_notification gemを使用します。私のApplicationControllerは次のようになります。
unless Rails.application.config.consider_all_requests_local
rescue_from Exception,
:with => :render_error
rescue_from ActiveRecord::RecordNotFound,
:with => :render_not_found
rescue_from ActionController::RoutingError,
:with => :render_not_found
rescue_from ActionController::UnknownController,
:with => :render_not_found
rescue_from ActionController::UnknownAction,
:with => :render_not_found
end
def render_not_found(exception)
ExceptionNotifier::Notifier
.exception_notification(request.env, exception)
.deliver
render :template => "/errors/404.html.erb",
:layout => 'errors.html.erb'
return
end
def render_error(exception)
ExceptionNotifier::Notifier
.exception_notification(request.env, exception)
.deliver
render :template => "/errors/500.html.erb",
:layout => 'errors.html.erb'
return
end
ファイルの最後にある /config/enviroments/productions.rg には、次のものがあります。
config.middleware.use ExceptionNotifier,
:email_prefix => "[MY APP| Error Report] ",
:sender_address => %{"MY APP" <err@my-app.com>},
:exception_recipients => 'my_email@gmail.com'
end
アプリでエラーが発生したとき-たとえば。Article.find(not-existing-ID)
、アプリケーションコントローラーで指定されたファイルからではなく、標準エラーページ (ERROR 500) を取得します/public/500.html
...どうすればそれが可能ですか? 過去数時間、問題を見つけようとしましたが、まだ問題がわかりません。