如何在Rails runner脚本中复现Rails控制台的输出样式
Rails runner脚本实现与Pry控制台一致的美观输出
rails runner执行脚本时,puts默认调用对象的to_s方法,ActiveRecord实例的默认to_s输出就是你看到的#<User:0xxxxx>内存地址格式。而Rails控制台(Pry环境)会自动对返回结果调用内置的格式化打印逻辑,包含高亮、属性分层排版,所以输出更规整。
方案1:使用Ruby标准库内置pp工具(无额外依赖)
pp(Pretty Print)是Ruby官方内置的格式化打印模块,输出为分层排版的对象属性,适配绝大多数场景。
修改tinker.rb内容如下:
require 'pp' u = User.first pp u
执行rails r './tinker.rb'即可看到结构化的对象输出。
方案2:调用Pry内置格式化器(和Pry控制台输出100%一致)
如果需要完全复现Pry控制台的高亮配色、排版样式,直接调用Pry的打印工具即可,要求项目已引入Pry依赖(通常为pry-rails gem)。
修改tinker.rb内容如下:
require 'pry' u = User.first Pry::ColorPrinter.pp(u)
如果运行时报错找不到pry,先在Gemfile中添加gem 'pry-rails',执行bundle install后再运行即可。
内容的提问来源于stack exchange,提问作者ajthinking
相关产品推荐
相关产品推荐

