Ich verwende Pry mit meiner Rails-Anwendung. Ich habe binding.pry
in meinem Modell eine Schleife eingerichtet, um ein Problem zu beheben. Beispielsweise:
(1..100).each do |i|
binding.pry
puts i
end
Wenn ich tippe quit
, geht es zur nächsten Iteration und stoppt erneut. Gibt es eine Möglichkeit, aus der Schleife auszusteigen, damit ich nicht quit
100 Mal tippen muss ?
Derzeit weiß ich nur, wie ich daraus herauskomme, indem ich CTRL+ verwende Cund die Anwendung neu starte.
exit
treffen, kann das Programm mit just weiter ausgeführt werden.rspec
. Aber STRG-C hat es zweimal getan.Ctrl + C
OS X wird durch zweimaliges Drücken die Pry-Sitzung beendet, aber auch das Terminalfenster wird effektiv beendet: Die nachfolgende Ausgabe ist fehlerhaft, sodass ich diese Terminal-Registerkarte schließen und zu einer neuen wechseln muss. Hat!!!
diese erschwerende Wirkung jedoch nicht.Ich benutze:
Dadurch wird das Programm weiterhin ausgeführt, die Ausführung wird jedoch nicht weiter gestoppt. Dies ist besonders hilfreich, wenn Sie in der Konsole debuggen.
quelle
ENV['DISABLE_PRY'] = nil
in Ihrem Controller nicht in der Befehlszeile ODER in der Rails-Konsole festlegen .Um alles zu beenden, verwenden Sie:
Dies sollte alle fortlaufenden Bindungen ignorieren.
quelle
exit-program
ist wahrscheinlich immer noch die beste Option, wenn Sie den Server nicht neu starten möchten.exit-program
können Sie Ihrerails server
Sitzung beibehalten , scheinen aber einenSystemExit
Dreifacher Ausruf (
!!!
) würde das tun.quelle
disable-pry
+ENV['DISABLE_PRY'] = nil
-Kombination nicht ausprobiert, aber ich habe versucht,exit-program
was mir einen systemExit gab. Dieser funktioniert einfach. (Auf Schienen 3.2.22.2, hebel 0.10.3 und Rubin 1.9.3)Verwenden
Fügen Sie dies zum Rendern Ihrem Controller hinzu
quelle
Eine
binding.pry
Anweisung entspricht genau einem Haltepunkt in GDB. Ein solcher Haltepunkt in GDB würde auch 100 Mal erreicht werden.Wenn Sie möchten
binding.pry
, dass die Schleife für die erste Iteration der Schleife nur einmal getroffen wird, verwenden Sie eine Bedingungbinding.pry
wie folgt:Anschließend beenden Sie die aktuelle Sitzung, indem Sie einfach eingeben
exit
.quelle
Basierend auf den beiden vorherigen Antworten:
Danke Jungs! Ihre Ratschläge haben mir sehr geholfen!
Ich möchte nur einen einfachen dummen Trick teilen, den ich persönlich benutze, um mir nicht die
DISABLE_PRY
ganze Zeit über die Umgebungsvariable Sorgen zu machen . Fügen Sie diesen RückrufApplicationController
dauerhaft zum Basis-Controller Ihres Projekts hinzu. PRY wird bei jedem Aufruf automatisch wieder aktiviertdisable-pry
:quelle
Mit gem können
pry-moves
Sie mitf
(finish command) aus der Schleife tretenBeispiel:
quelle
Drücken Sie 'q' und Sie werden genau so sehen
Art
Dieses eine Wort reicht aus, wenn nicht:
quelle