Używam Pry z aplikacją Rails. Ustawić binding.pry
wewnątrz pętli w moim modelu, aby spróbować i debugowania problem. Na przykład:
(1..100).each do |i|
binding.pry
puts i
end
Kiedy piszę quit
, przechodzi do następnej iteracji i zatrzymuje się ponownie. Czy istnieje sposób na wyjście z pętli, aby nie musiałem pisać quit
100 razy?
Obecnie jedynym sposobem, w jaki mogę się z tego wydostać, jest użycie CTRL+ Ci ponowne uruchomienie aplikacji.
exit
pozwoli programowi działać dalej.rspec
. Ale CTRL-C dwukrotnie.Ctrl + C
dwukrotne naciśnięcie zabije sesję Pry, ale także skutecznie zabije to okno terminala: kolejne dane wyjściowe są zniekształcone, tak że muszę zamknąć kartę terminala i przejść do nowej. Jednak!!!
nie ma tego działania obciążającego.Używam:
Utrzyma to działanie programu, ale powstrzyma go przed zatrzymaniem wykonywania. Jest to szczególnie przydatne podczas debugowania w konsoli.
źródło
ENV['DISABLE_PRY'] = nil
w kontrolerze, a nie w wierszu poleceń LUB w konsoli szyn.Aby wyjść ze wszystkiego, użyj:
To powinno zignorować wszystkie powiązane powiązania.
źródło
exit-program
jest prawdopodobnie najlepszą opcją, jeśli nie chcesz ponownie uruchamiać serwera.exit-program
pozwala na kontynuacjęrails server
sesji, ale wydaje się, że rzuciłSystemExit
Potrafiłby to potrójny wykrzyknik (
!!!
).źródło
disable-pry
+,ENV['DISABLE_PRY'] = nil
ale próbowałem,exit-program
co dało mi wyjście systemowe. Ten po prostu działa. (Na szynach 3.2.22.2, podważ 0.10.3 i ruby 1.9.3)Posługiwać się
Aby ponownie włączyć, dodaj to do kontrolera
źródło
binding.pry
Stwierdzenie jest dokładnie taka sama jak przerwania w GDB. Taki punkt przerwania w GDB zostałby również trafiony 100 razy.Jeśli chcesz,
binding.pry
aby uderzył tylko raz, dla pierwszej iteracji pętli, użyj warunkubinding.pry
podobnego:Następnie wychodzisz z bieżącej sesji po prostu wpisując
exit
.źródło
Na podstawie dwóch poprzednich odpowiedzi powyżej:
Dzięki chłopaki! Twoje porady bardzo mi pomogły!
Chcę tylko podzielić się prostą głupią sztuczką, której osobiście używam, aby nie martwić się o
DISABLE_PRY
zmienną środowiskową przez cały czas. Dodaj to wywołanie zwrotne do podstawowego kontroleraApplicationController
projektu na stałe. Automatycznie ponownie włączy PRY za każdym razem, gdydisable-pry
zostanie wywołane:źródło
Za pomocą klejnotu
pry-moves
możesz wyjść z pętli za pomocąf
(polecenie zakończenia)przykład:
źródło
naciśnij „q”, a zobaczysz dokładnie tak
rodzaj
to jedno słowo wystarczy, jeśli nie:
źródło