0

这是一个我已经多次问过的一般性问题。我在我的模型中编写验证器或其他东西,然后我在 rspec 和我的一个条件中运行一些测试,如下所示:

validate :some_validator    

def some_validator
  if some_attribute.count == 1         <-- Here!
    run_this_method
  end
end

评估为真,我不知道为什么。通常我能够回溯代码并找出原因,但即便如此,我通常也会浪费数小时追踪一两件事。

那么有没有办法让rails停下来告诉我在哪条线上发生了什么?

4

1 回答 1

1

Pry 是一个很好的 Ruby/Rails 调试器,用于在程序执行和检查变量时停止程序。

binding.pry添加断点,您可以在终端中使用代码。

def some_validator
  binding.pry
  if some_attribute.count == 1         <-- Here!
    run_this_method
  end
end

以下是 Pry 的一些有用的学习资源:

  1. RailsCast on Pry
  2. 撬轨宝石
于 2013-08-08T23:07:54.303 回答