如何在Rails中获取变量状态?

时间:2013-08-08 18:22:40

标签: debugging ruby-on-rails-3.2

这是一个普遍的问题,我已多次击中。我正在我的模型中编写验证器或者其他东西然后我在rspec和我的一个条件中运行一些测试:

validate :some_validator    

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

评估为真,我不明白为什么。通常我能够回溯代码并弄清楚原因,但即便如此,我通常也会浪费时间追踪一两件事。

那么有没有办法让轨道停下来告诉我什么线路正在进行?

1 个答案:

答案 0 :(得分: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. pry-Rails gem