请分享您在 Ruby/Rails 中进行调试的方法。
我正忙于学习 Rails 教程,遇到错误:
NoMethodError in UsersController#show
undefined method `microposts' for #<User:0x83b43e8>
这让我开始思考调试策略。有没有人对新的 Rails 用户(和新的 MVC 用户)有关于调试策略的建议。你遵循什么路径?是否有普遍接受的方法?有没有办法单步执行代码?
现在我正在使用单元测试作为一种“lint”检查器,但也仅此而已。
虽然我想解决它,但我现在遇到的实际错误并不是这个问题的主旨。
(PS:问题不是 Stackoverflow 上其他地方记录的重复“显示”
最佳答案
我还没有看到这个被提及,但另一种选择是在您的代码中放置一个 debugger
语句。像这样
def some_method
something = 3
debugger
# ... more code
end
如果在 Rails 应用程序中,当代码到达 debugger
时,它将导致运行 Web 服务器的终端窗口跳转到看起来像 irb session 的东西(我不确定是什么这是)。例如,您可以从那里puts something
来查看值是什么。您甚至可以puts params
来查看所有参数值是什么。您还可以单步执行代码、跳转到特定行等。
Pry 似乎是解决此问题的更好方法,但这是我在知道 pry 之前用来调试的方式。
注意:如果您在 Rails 之外执行此操作,则可能需要执行 require 'ruby-debug'
。
关于ruby-on-rails - Ruby/Rails 调试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071170/