如何打印查看Rails中POST请求的实际输出内容?
问题说明
你给出的请求代码为Ruby on Rails框架下的标准接口请求写法:
post '/api/v1/fruit', params: valid_fruits, headers: lots_of_security
以下是对应的调试方法:
查看请求后台运行逻辑
- 测试/开发环境下先开启全量日志输出,在请求代码前添加如下代码:
运行请求后,控制台会按顺序输出路由匹配、参数校验、业务逻辑执行、SQL操作、响应生成的全流程后台运行细节,包含每一步的调用位置和耗时。Rails.logger.level = :debug ActiveRecord::Base.logger = Logger.new(STDOUT) ActionController::Base.logger = Logger.new(STDOUT) - 如果需要逐行跟踪执行逻辑,在请求代码前插入
byebug或者pry断点,运行后进入交互模式,逐行执行代码即可查看每一步的运行状态。 - 开发环境下也可以直接查看项目根目录下
log/development.log日志文件,所有请求的后台运行记录都会持久化保存在该文件中。
查看请求原始输出中的水果相关参数
- 执行请求前直接打印入参:添加代码
pp valid_fruits,会格式化输出所有传入的水果参数的完整结构和取值。 - 执行请求后打印原始请求体:添加代码
puts response.request.raw_post,即可输出发送到/api/v1/fruit接口的完整未解析原始请求内容,所有水果相关参数都会包含在该内容中。 - 如果需要查看完整请求对象的参数解析结果,执行请求后添加代码
pp response.request.parameters,会输出后台解析后的所有参数,包含query参数和请求体参数里的所有水果相关字段。
内容的提问来源于stack exchange,提问作者Salomanuel
相关产品推荐
相关产品推荐

