어떻게 rails로 404, 500 등의 오류를 포착합니까?
참조:http://ruby-rails.hatenadiary.com/entry/20141111/1415707101
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
# 他のエラーハンドリングでキャッチできなかった場合に
# 500 Internal Server Error(システムエラー)を発生させる
# NOTE: rescue_from は下から評価されるので記載箇所はここが正解
rescue_from Exception, with: :handle_500 unless Rails.env.development?
# 例外に合わせたエラーハンドリング
# 404 Not Found リソースが見つからない。アクセス権がない場合にも使用される
rescue_from ActionController::RoutingError, with: :handle_404 unless Rails.env.development?
rescue_from ActiveRecord::RecordNotFound, with: :handle_404 unless Rails.env.development?
#rescue_from ActiveRecord::RecordNotUnique, with: :render_409
#rescue_from UnauthorizedError, with: :render_401
#rescue_from IllegalAccessError, with: :render_403
# エラーハンドリング処理
def handle_500(exception = nil)
logger.info "Rendering 500 with exception: #{exception.message}" if exception
if request.xhr?
# Ajaxのための処理
render json: { error: '500 error' }, status: 500
else
render template: 'errors/error_500', status: 500, layout: 'application', content_type: 'text/html'
end
end
def handle_404(exception = nil)
logger.info "Rendering 404 with exception: #{exception.message}" if exception
if request.xhr?
# Ajaxのための処理
render json: { error: '404 error' }, status: 404
else
render template: 'errors/error_404', status: 404, layout: 'application', content_type: 'text/html'
end
end
end
기타 참조
Rails로 API 제작 시 오류 처리 - Qiita←매우 참고 가치 ★
오류 알림용 웹 서비스(Rails)
Airbrake
Reference
이 문제에 관하여(어떻게 rails로 404, 500 등의 오류를 포착합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/howling_wolf/items/08cf3ea165106a85f785텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)