답변:
무조건 Pry를 종료하려면 다음을 입력하십시오.
exit-program
@ Nick의 의견에서 편집 : 또한 작동합니다 :
!!!
exit
잡을 수는 있지만 사용하면 프로그램이 계속 실행될 수 있습니다.
rspec
. 그러나 CTRL-C는 두 번했다.
Ctrl + C
두 번 누르면 Pry 세션이 종료되지만 해당 터미널 창도 효과적으로 종료됩니다. 후속 출력은 글리치되어 터미널 탭을 닫고 새 탭으로 이동해야합니다. 그러나이 !!!
악화 효과는 없습니다.
나는 사용한다:
disable-pry
이렇게하면 프로그램이 계속 실행되지만 실행을 계속 중지 할 수는 없습니다. 이것은 콘솔에서 디버깅 할 때 특히 유용합니다.
ENV['DISABLE_PRY'] = nil
명령 줄 또는 레일 콘솔이 아닌 컨트롤러 에 설정 하기 만하면됩니다.
모든 것을 종료하려면 다음을 사용하십시오.
exit!
모든 진행중인 바인딩을 무시해야합니다.
exit-program
서버를 다시 시작하지 않으려는 경우 여전히 최선의 옵션입니다.
exit-program
당신이 당신의 유지 보수 할 수 있습니다 rails server
세션을하지만 던질 것SystemExit
위의 두 가지 이전 답변을 바탕으로 :
감사합니다! 당신의 조언은 정말 많은 도움이되었습니다!
나는 단지 DISABLE_PRY
환경 변수 에 대해 항상 걱정하지 않기 위해 개인적으로 사용하는 간단한 바보 같은 트릭을 공유하고 싶습니다 . 이 콜백을 ApplicationController
프로젝트 의 기본 컨트롤러 에 영구적으로 추가하십시오 . disable-pry
호출 될 때마다 PRY를 자동으로 다시 활성화합니다 .
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_action :reenable_pry
private
def reenable_pry
ENV['DISABLE_PRY'] = nil
end
end
gem pry-moves
을 사용하면 f
(finish 명령)을 사용하여 루프에서 벗어날 수 있습니다
예:
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