[Rails] 빨리 알고 싶은 디버깅용gem'bettererrors','binding_of_caller'

개시하다


며칠 전에 이토 씨의 이쪽 애니메이션을 봤어요(↓).
프로그래밍 초보자를 환영합니다!"오류가 발생했습니다. 어떻게 하면 좋을까요?"졸업의 기본과 비결-유튜브
"아니, 왜 더 일찍 안 봤어!"나는 구체적인 디버깅 수법에 대해 많은 해설이 있다고 생각한다.
다음은gembetter_errors & binding_of_caller의 도입 방법과 견해를 간단하게 요약한다.
지금까지
  • puts デバッグ
  • binding.pry
  • rails serverのログ
  • "잘못"을 사용하여 잘못과 싸우면, 나는 이 두 개의gem를 더 일찍 알고 싶다.

    이 보도에 도움이 되는 사람

  • 잘못된 Rails 초보자 고생
  • 이 보도의 장점

  • 디버깅의 효율 향상
  • 컨디션

  • macOS Catalina 10.15.1
  • zsh: 5.7.1
  • Ruby: 2.6.5
  • Rails: 5.2.3
  • Docker: 19.03.5
  • better_errors란?


    기본 오류 화면에 대한 간단하고 알기 쉬운 성형gem.

    binding_of_이른바 콜러?


    better_errors와 함께 사용하면 브라우저irb의gem를 사용할 수 있습니다.
    ※ 본 기사에는 사용법은 언급되지 않았습니다.

    가져오기 방법


    Gemfile
    group :development do
      gem 'better_errors'
      gem 'binding_of_caller'
    end
    
    Gemfile에 위 내용 추가
    bundle install
    
    완성간단하다

    ※ Docker 사용 시 시간이 조금 더 소요됨


    app/config/environments/development.rb
    BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
    
    가상 환경을 사용하는 사람들은 일을 잘 할 수 없을 것 같다.
    Docker를 사용하고 있지만, 위의 코드를 추가하고 서버를 다시 시작할 때 작업을 시작했습니다.
    젬'베터 errors'가 움직이지 않을 때

    사용 예


    Argument Error가 나타날 때

    form_with 사용 중 오류가 발생한 경우를 예로 들 수 있습니다.
    디스플레이가 이전의 빨간색 오류 화면에서 바뀌었다.

    오류 메시지를 맨 위에 놓으면 변하지 않습니다
    아래에는 두 개의 탭이 있습니다.이거 완전 편해요.
  • Application Frames
  • All Frames
  • 1. Application Frames


    처음에는 Application Frames가 표시됩니다.
    여기에는 자신이 쓴 코드를 대상으로 오류와 관련된 부분을 명시했다.

    2. All Frames


    그런 다음 All Frames를 클릭하면 자신이 쓴 곳 이외(gem 또는 Active Support 등)에 오류와 관련된 부분이 표시됩니다.
    각자 클릭하면 코드가 표시됩니다.
    예를 들어 이번에도 form_with의 원본 코드가 나타날 것이다.

    ↓ 뽑기form_with 첫 줄이면 이런 느낌.
    def form_with(model: nil, scope: nil, url: nil, format: nil, **options, &block)
    
    이렇게 하면 지정해야 할 매개 변수를 알 수 있는데, 이번에는
    "안 돼! 그러고 보니 내가 까먹었어model:!"
    알아볼 수 있어.편리합니다!
    NoMethodError에 나타나면~ for nil:NilClass 브라우저에서 변수의 내용을 직접 확인할 수 있어 편리하다.

    ※ 이미지 아래쪽은 콘솔입니다.

    끝말


    끝까지 읽어주셔서 감사합니다
    디버깅 방법은 학습을 시작하는 단계에서 가능한 한 많이 열거하는 것이 효율적이라고 생각하지만better_errors 일찍 도입하고 싶다
    이토의 유튜브 배울 점이 많으니까 다른 영상도 보여주세요.

    참조된 웹 사이트(지금까지 지원해 주셔서 감사합니다)


    프로그래밍 초보자를 환영합니다!"오류가 발생했습니다. 어떻게 하면 좋을까요?"졸업의 기본과 비결-유튜브
    프로그래밍 초보자를 환영합니다!"오류가 발생했습니다. 어떻게 하면 좋을까요?"졸업의 기본과 비결(해설영상 첨부)-큐타
    젬'베터 errors'가 움직이지 않을 때
    【Rails】better_errors와 bindingof_caller로 스스로 오류를 해결할 수 있습니다[초보자용] - Qiita.

    좋은 웹페이지 즐겨찾기