TablePrint 项目技术文档
2024-12-26 21:44:49作者:柯茵沙
1. 安装指南
独立安装
使用RubyGems独立安装table_print:
gem install table_print
Rails项目安装
在Rails项目的Gemfile文件中添加以下代码:
gem "table_print"
然后执行以下命令安装:
bundle install
2. 项目使用说明
table_print可以轻松地将以表格形式显示对象,便于阅读。它甚至允许你嵌套其他表格,以表格形式展示相关对象的数据。
以下是如何在Rails项目内外使用table_print:
Rails项目内使用
在Rails控制台中,可以直接使用:
rails c
tp array_of_objects, options
Rails项目外使用
在Ruby交互式解释器(IRB)中,首先导入table_print:
irb
require 'table_print'
tp array_of_objects, options
例如,使用Book模型的数据:
tp Book.all
输出将类似于:
AUTHOR | SUMMARY | TITLE
------------------|---------------------------------|------------------
Michael Connelly | Another book by Michael Con... | The Fifth Witness
Manning Marable | From acclaimed historian Ma... | Malcolm X
Tina Fey | Worth it. -Trees | Bossypants
3. 项目API使用文档
以下是一些table_print的API使用示例:
显示特定列
你可以自定义输出,显示较少的列或显示你在模型上编写的其他方法:
tp User.limit(30), :include => :yearly_income, :except => :hourly_rate
或者,只显示特定信息:
tp User.limit(30), :address, 'city', 'state', :zip
嵌套对象
如果你有包含嵌套对象的数据,你可以使用方法链来引用这些对象:
tp Author.limit(3), "name", "books.title", "books.photos.caption"
列选项
你可以通过使用列作为哈希键的选项,为单个列传递选项:
tp User.all, :email => {:width => 12}
以下是一些可用的列选项:
display_method:用于填充列的方法名称或过程。formatters:一个对象数组,每个对象在被打印的单元格上依次调用。time_format:用于时间列的格式。width:列的宽度。display_name:用于列名的字符串,如果列名中需要空格,非常有用。separator:列分隔符,默认是竖线,用于控制台和Markdown输出,可以更改为逗号以输出CSV格式。
HTML输出
目前,在HTML页面上显示table_print输出的最佳方法是在<pre>标签中使用。你可以创建一个辅助方法,直接将table_print输出发送到<pre>标签中:
def tp_pre data, options={}
content_tag :pre, TablePrint::Printer.new(data, options).table_print
end
CSV输出
将列分隔符设置为逗号,以获取可以保存为CSV的输出:
tp.set :separator, ","
配置
使用tp.set和tp.clear在不同的类上设置选项:
tp.set User, :id, :email
现在,每次打印用户时,只显示ID和电子邮件。
你可以重置配置:
tp.clear User
多字节字符串
如果要处理大量多字节字符,请先设置多字节选项:
tp.set :multibyte, true
4. 项目安装方式
请参考上述“安装指南”部分。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0139- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
MiniCPM-V-4.6这是 MiniCPM-V 系列有史以来效率与性能平衡最佳的模型。它以仅 1.3B 的参数规模,实现了性能与效率的双重突破,在全球同尺寸模型中登顶,全面超越了阿里 Qwen3.5-0.8B 与谷歌 Gemma4-E2B-it。Jinja00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
MusicFreeDesktop插件化、定制化、无广告的免费音乐播放器TypeScript00
项目优选
收起
deepin linux kernel
C
29
16
暂无描述
Dockerfile
727
4.66 K
Ascend Extension for PyTorch
Python
599
751
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.02 K
139
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.66 K
971
暂无简介
Dart
970
246
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
427
377
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.09 K
610
AI 将任意文档转换为精美可编辑的 PPTX 演示文稿 — 无需设计基础 | 包含 15 个案例、229 页内容
Python
122
7
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
992
988