Saya menggunakan Pry dengan aplikasi Rails saya. Saya mengatur binding.pry
di dalam lingkaran dalam model saya untuk mencoba dan men-debug masalah. Sebagai contoh:
(1..100).each do |i|
binding.pry
puts i
end
Saat saya mengetik quit
, ia beralih ke iterasi berikutnya dan berhenti lagi. Apakah ada cara untuk keluar dari loop jadi saya tidak perlu mengetik quit
100 kali?
Saat ini satu-satunya cara saya tahu bagaimana keluar dari itu adalah menggunakan CTRL+ Cdan me-restart aplikasi.
exit
akan memungkinkan program untuk terus berjalan.rspec
. Tapi CTRL-C, dua kali, berhasil.Ctrl + C
dua kali akan mematikan sesi Pry, tetapi juga akan secara efektif mematikan jendela terminal: output selanjutnya menjadi kacau sehingga saya harus menutup tab terminal dan pindah ke yang baru. Namun!!!
tidak memiliki efek yang memberatkan ini.Saya menggunakan:
Ini akan membuat program tetap berjalan, tetapi akan membuatnya tidak melanjutkan untuk menghentikan eksekusi. Ini sangat membantu ketika Anda sedang melakukan debug di konsol.
sumber
ENV['DISABLE_PRY'] = nil
di controller Anda tidak di baris perintah ATAU konsol rel.Untuk keluar dari semuanya, gunakan:
Ini harus mengabaikan semua binding yang sedang diproses.
sumber
exit-program
mungkin masih merupakan opsi terbaik jika Anda tidak ingin me-restart server.exit-program
memungkinkan Anda untuk mempertahankanrails server
sesi Anda tetapi tampaknya melemparSystemExit
Seruan tiga kali lipat (
!!!
) akan melakukannya.sumber
disable-pry
+ENV['DISABLE_PRY'] = nil
combo tapi saya mencobaexit-program
yang memberi saya systemExit. Yang ini hanya berfungsi. (Di rel 3.2.22.2, pry 0.10.3 dan ruby 1.9.3)Menggunakan
Untuk dapat diperbarui, tambahkan ini ke controller Anda
sumber
SEBUAH
binding.pry
pernyataan adalah persis sama sebagai breakpoint di GDB. Breakpoint seperti itu di GDB akan mencapai 100 kali juga.Jika Anda hanya ingin
binding.pry
dipukul sekali, untuk iterasi pertama dari loop, kemudian gunakan conditionalbinding.pry
seperti:Anda kemudian keluar dari sesi saat ini hanya dengan mengetik
exit
.sumber
Berdasarkan dua jawaban sebelumnya di atas:
Terima kasih kawan! Nasihat Anda sangat membantu saya!
Saya hanya ingin berbagi trik bodoh sederhana, yang saya pribadi gunakan untuk tidak khawatir tentang
DISABLE_PRY
variabel lingkungan sepanjang waktu. Tambahkan panggilan balik ini ke pengontrol dasarApplicationController
proyek Anda secara permanen. Ini akan secara otomatis mengaktifkan kembali PRY setiap kalidisable-pry
dipanggil:sumber
Menggunakan gem,
pry-moves
Anda dapat keluar dari loop menggunakanf
(perintah finish)contoh:
sumber
tekan 'q' dan Anda akan melihat seperti ini
Tipe
kata yang satu ini akan berlaku, jika tidak:
sumber