我试图调试一个ruby应用程序,在那里我循环了很多天,检查我的员工,看看他们当天是否工作。我正在处理的代码如下所示:
def search_for_worked(day)
# debugger
workers = employees.select do |employee|
employee.worked?(day)
end
if workers.length < 1
raise Error
end
我认识我的员工。工作过吗?方法正在做一些它不应该做的事情,我想用导致问题的参数进入它。然而,search_for_worked方法在它到达失败的那一天之前被调用了大约100次。
我可以致电catch Error
但是在方法之后停止了,所以我无法进入。
如果在我已经调用之后我只知道它做错了什么,那么调试逻辑错误的最佳方法是什么?
答案 0 :(得分:1)
我经常使用这样的东西:
debugger if <condition I didn't expect>
或
debugger if $foo.nil?
第二次将在循环中第一次被击中,然后我将$ foo(全局)设置为某事并继续。