我在Rails应用程序中使用了撬。我设置了绑定。窥探我的模型中的一个循环,尝试调试一个问题。例如:

(1..100).each do |i|
  binding.pry
  puts i
end

当我输入quit时,它会进入下一个迭代并再次停止。是否有一种方法可以退出循环,这样我就不必键入退出100次了?

目前我知道如何摆脱它的唯一方法是使用CTRL+C并重新启动应用程序。


当前回答

如果你只需要调试一次迭代,你可以直接抛出错误,转义保证:

(1..100).each do |i|
  binding.pry
  raise
  puts i
end

或有条件地:

(1..100).each do |i|
  if i == 50
    binding.pry 
    raise
  end
  puts i
end

其他回答

要退出所有内容,使用:

exit!

这应该忽略所有正在进行的绑定。

Use

disable-pry

若要可恢复,请将此添加到控制器中

ENV['DISABLE_PRY'] = nil

如果你只需要调试一次迭代,你可以直接抛出错误,转义保证:

(1..100).each do |i|
  binding.pry
  raise
  puts i
end

或有条件地:

(1..100).each do |i|
  if i == 50
    binding.pry 
    raise
  end
  puts i
end

要无条件退出priy,请键入

exit-program

编辑自@Nick的评论:也适用:

!!!

按“q”,你会看到像这样

[1] pry(#<AlbumsController>)>

type

exit

如果没有,这一个词也可以:

control + c