어떻게 하면 루비 프라이의 고리에서 벗어날 수 있을까요?
레일즈 애플리케이션으로 프라이를 사용하고 있습니다.나는 설정binding.pry
문제를 디버깅하기 위해 내 모델의 루프 안에 있습니다.예:
(1..100).each do |i|
binding.pry
puts i
end
입력할 때quit
다음 반복으로 이동하고 다시 중지합니다.입력하지 않아도 되도록 루프에서 벗어날 수 있는 방법이 있습니까?quit
100번?
지금은 +를 C사용하고 애플리케이션을 다시 시작하는 방법밖에 없습니다.
프라이를 무조건 종료하려면 다음과 같이 입력합니다.
exit-program
@Nick의 코멘트에서 편집:또한 작동:
!!!
사용자:
disable-pry
이렇게 하면 프로그램이 계속 실행되지만 실행이 계속 중지되지는 않습니다.콘솔에서 디버깅할 때 특히 유용합니다.
모든 항목을 종료하려면 다음을 사용합니다.
exit!
이렇게 하면 진행 중인 모든 바인딩이 무시됩니다.
세 번 느낌표(!!!
) 그렇게 할 것입니다.
사용하다
disable-pry
다시 사용하려면 컨트롤러에 추가합니다.
ENV['DISABLE_PRY'] = nil
A binding.pry
문은 GDB의 중단점과 정확히 같습니다.GDB의 그러한 중단점도 100번 타격을 받을 것입니다.
당신이 원하는 것이.binding.pry
루프의 첫 번째 반복에 대해 한 번 적중한 다음 조건부를 사용합니다.binding.pry
이와 같이:
(1..100).each do |i|
binding.pry if i == 1
puts i
end
그런 다음 현재 세션을 종료합니다.exit
.
위의 두 개의 이전 답변을 기반으로 합니다.
감사합니다.당신의 조언이 저에게 많은 도움이 되었습니다!
저는 개인적으로 걱정하지 않는 간단한 바보 같은 속임수를 공유하고 싶습니다.DISABLE_PRY
항상 환경 변수입니다.이 콜백을 기본 컨트롤러에 추가합니다.ApplicationController
프로젝트의 영구적인.매번 자동으로 PRI를 다시 활성화합니다.disable-pry
다음을 호출:
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :reenable_pry
private
def reenable_pry
ENV['DISABLE_PRY'] = nil
end
end
보석 사용하기pry-moves
다음을 사용하여 루프에서 벗어날 수 있습니다.f
(command 명령어)
예:
42: def test
43: 3.times do |i|
=> 44: binding.pry
45: puts i
46: end
47: puts :finish
48: end
[1] pry(main)> f
0
1
2
Frame: 0/1 method
From: playground/sand.rb:47 main
42: def test
43: 3.times do |i|
44: binding.pry
45: puts i
46: end
=> 47: puts :finish
48: end
'q'를 누르면 다음과 같이 표시됩니다.
[1] pry(#<AlbumsController>)>
유형
exit
만약 그렇지 않다면, 이 한 단어로 충분할 것입니다.
control + c
한 번만 디버깅하면 되는 경우 오류를 발생시키고 보증을 종료할 수 있습니다.
(1..100).each do |i|
binding.pry
raise
puts i
end
또는 조건:
(1..100).each do |i|
if i == 50
binding.pry
raise
end
puts i
end
언급URL : https://stackoverflow.com/questions/8015531/how-do-i-step-out-of-a-loop-with-ruby-pry
'source' 카테고리의 다른 글
mysql/mysadb 10.xx 기본 포트를 변경하는 방법은 무엇입니까? (0) | 2023.06.06 |
---|---|
구성 중 저장된 Git 사용자 이름과 이메일을 아는 방법은 무엇입니까? (0) | 2023.06.06 |
설치된 Angular-cli 버전을 확인하는 중입니까? (0) | 2023.06.06 |
제한을 사용하여 dsl 삭제 쿼리를 쿼리했습니다. (0) | 2023.06.06 |
R에서 트라이캐치를 쓰는 방법 (0) | 2023.06.06 |