Rails에서 오류가 발생한 경우 표시 제어

3124 단어 RailsRubytech

뭐?


오류가 발생했을 때 어떻게 처리해야 할지 추적해 보았다

큰어머니.

  • Ruby ruby 2.7.2p137
  • Rails 6.1.2
  • 흐르는 물


    다음 3단계의 자세로 오류를 포착합니다.
  • ActionController::Rescue 검사 통과
  • ActionDispatch::DebugExceptions 검사 통과
  • ActionDispatch::ShowExceptions 검사 통과
  • ActionController::Rescue


    검사rescue_from에 설정된 오류 클래스를 일치하게 정의합니다.

    ActionDispatch::DebugExceptions


    다음 설정에 따라 자세한 오류 화면이 표시됩니다.
    config.consider_all_requests_local = true
    # 以下はデフォルトtrueなので明示的には設定していないかもしれない
    config.action_dispatch.show_exceptions = true
    
    처음에 설정된 개발자 모드는 이렇습니다.
    다음 세부 오류 화면이 표시됩니다.
    화면 아래쪽에 웹 콘솔이 시작되어 있어 조금만 디버깅할 수 있습니다.

    ActionDispatch::ShowExceptions


    설정에 따라 간단한 오류 표시와 일반적인 오류 표시 두 가지가 있습니다.

    간단한 오류 표시


    # consider_all_requests_localの設定には左右されない
    # config.consider_all_requests_local = true
    config.action_dispatch.show_exceptions = false
    
    아무도 이런 상태에서 사용하지 않을 것 같다.
    이 때 아래 오류 메시지와 배서 추적의 간단한 오류 화면만 표시됩니다.

    일반 오류 표시


    config.consider_all_requests_local = false
    # 以下はデフォルトtrueなので明示的には設定していないかもしれない
    config.action_dispatch.show_exceptions = true
    
    처음에 설정된 제품 모드는 이렇습니다.
    이 때 config.exceptions_app에 따라 오류가 표시됩니다.
    기본 표시#{Rails.root}/public/#{HTTPステータスコード}.html.
    #{Rails.root}/public/#{HTTPステータスコード}.#{I18n.locale}.html가 있을 경우 그쪽이 우선입니다.
    ※ 파일이 없으면 바디의 빈 응답이 404 응답으로 돌아갑니다.
    묵인 404.> 여기 있다.

    잡담


    유키24씨가 제작한gemrambulance이 있습니다.
    오류 디스플레이에 사용할 키에 대응하는view를 제공하여 오류와 오류 클래스를 비추고 오류를 유연하게 표시하는 구조를 제공합니다.
    이gem는 맞춤형 제작config.exceptions_app을 통해 이루어진다.

    좋은 웹페이지 즐겨찾기