回答:
無条件にPryを終了するには、次のように入力します。
exit-program
@Nickのコメントからの編集:動作します:
!!!
exit
を使用すると、プログラムを実行し続けることができます。
rspec
。しかし、CTRL-Cを2回押しました。
Ctrl + C
2回押すとPryセッションが強制終了されますが、そのターミナルウィンドウも事実上強制終了されます。後続の出力でグリッチが発生し、ターミナルタブを閉じて新しいタブに移動する必要があります。ただし、!!!
この悪化の影響はありません。
私が使う:
disable-pry
これはプログラムの実行を維持しますが、実行を停止し続けることを防ぎます。これは、コンソールでデバッグするときに特に役立ちます。
ENV['DISABLE_PRY'] = nil
するには、コマンドラインやRailsコンソールではなく、コントローラーを設定するだけです。
すべてを終了するには、以下を使用します。
exit!
これにより、進行中のすべてのバインディングが無視されます。
exit-program
サーバーを再起動したくない場合は、おそらくまだ最善の選択肢です。
exit-program
するだけでrails server
セッションを維持できますが、スローされるようですSystemExit
上記の2つの以前の回答に基づく:
君たちありがとう!あなたのアドバイスは本当に私を助けてくれました!
私は、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
「q」を押すと、このように表示されます
[1] pry(#<AlbumsController>)>
タイプ
exit
そうでない場合、この1つの単語で十分です。
control + c