当我寻找问题时,例如使用特定的 ActiveRecord 对象时,我经常发现自己在生产系统上执行以下操作:
# RAILS_ENV=production bundle exec
irb(main)> article = Article.find(123)
=> #<Article id: 123, title: "Foobar">
irb(main)> article.do_something(3)
NoMethodError: undefined method `id' for nil:NilClass
有时我无法重现,为什么该行article.do_something(3)
会抛出错误,所以我想直接在我的服务器上以生产模式调试它。
现在的问题是:如何使用对象/实例上#do_something
的参数进入方法?3
article
当然,可以在该方法中设置断点,重新加载生产并让所有客户在该断点上等待,直到我完成调试......但这不是最好的主意。
那么,有没有办法从正在运行的 irb / pry 会话中调试到特定实例的方法?(两者都可以)