调试循环中的ruby

时间:2014-02-02 04:15:12

标签: ruby debugging

我试图调试一个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但是在方法之后停止了,所以我无法进入。

如果在我已经调用之后我只知道它做错了什么,那么调试逻辑错误的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我经常使用这样的东西:

debugger if <condition I didn't expect>

debugger if $foo.nil?

第二次将在循环中第一次被击中,然后我将$ foo(全局)设置为某事并继续。