在 Ruby 中调试代码有多种方式,从最简单的打印输出,到功能强大的交互式调试器。下面按由浅入深的方式介绍常见方法:
puts / p / ppputsputs "当前值: #{value}"
to_spp user
inspectpp(pretty print)require 'pp'
pp users
✅ 适合:快速定位问题
Rails.logger.debug "user: #{user.inspect}"
或普通 Ruby:
require 'logger'
logger = Logger.new(STDOUT)
logger.debug("调试信息")
byebug(最常用,Ruby 2.x / Rails)安装:
gem install byebug
使用:
require 'byebug'
def foo
byebug
puts 1 + 1
end
foo
运行后会进入调试终端:
(byebug) n # 下一步
(byebug) s # 进入方法
(byebug) c # 继续执行
(byebug) p var # 查看变量
debug(Ruby 3+ 官方推荐)Ruby 3 自带:
require 'debug'
def foo
binding.break
puts 1 + 1
end
或:
debugger
特性:
binding.irb(交互式 REPL)def foo
binding.irb
end
进入 IRB 环境,可实时执行 Ruby 代码。
✅ 适合:探索对象状态
begin
do_something
rescue => e
puts e.message
puts e.backtrace
end
或更简单:
raise user.inspect
debug gem✅ 小问题:puts / p
✅ 逻辑复杂:byebug / debug
✅ 看对象结构:pp / binding.irb
✅ 生产问题:日志 + 异常捕获
如果你用的是 Rails、纯 Ruby 脚本、还是 RSpec 测试,我可以给你更具体的调试示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。