1、打印调试日志
Rails.logger.info "调试内容"
日志路径:\项目\log\debug_log.log
2、打印函数调用堆栈信息
Rails.logger.info“#{caller.join("\n")}"
3、Rails Model调试方法
如果Rails调试问题发生在一个Model中,我们可以进入Rails控制台模拟一个irb对话,在其中进行跟踪。
~$ rails console
Loading development environment (Rails 3.2.22)
irb(main):001:0> user = Users.find(:first)
irb(main):002:0> user.name
=> "myname"
irb(main):003:0>
4、使用pry-rails调试工具
1)在项目Gemfile文件中添加如下:
group:development do
gem 'pry-rails'
gem 'pry-remote'
gem 'pry-nav'
end
2)在需要调试的代码中添加binding.pry或者binding.remote_pry(采用passenger中间件转发使用)
def say
content = "hello,world"
puts content
binding.remote_pry #这里设置代码断点
end
3)在项目的shell终端运行pry-remote
~$ pry-remote
def say
content = "hello,world"
puts content
=> binding.remote_pry #这里设置代码断点
end
箭头位置是当前代码断点,可以通过上下文查询当前变量的值。
以下是常用的调试命令:
step: 单步执行下一行代码或方法
next: 执行下一行代码(在相同的堆栈下)
continue:继续代码,
需要了解更多信息,可以输入help
pry(#)> help