在Rails Console中,是否有一种方法可以打印数据库内容的表格?

8
我正在寻找一种简洁明了的方法,在Rails控制台中打印我5行2列数据库的内容。有什么好的想法吗?我已经在Google上搜索过,但没有找到太多相关信息。

我有点困惑。你所说的“具有2列的5元素数据库”是什么意思? - Amokrane Chentir
抱歉,5行2列。 - Zack Shapiro
4个回答

18

我认为你应该首先使用hirb gem,它提供了一种非常愉悦的方式来打印你的表格列。

  1. 安装 hirb gem: gem install hirb
  2. 将这个 gem 添加到你项目的 Gemfile 中: gem 'hirb'
  3. 进入你项目的根目录并运行 Rails console: rails c
  4. 在控制台中启用 hirb:

    require 'hirb'
    Hirb.enable
    
    如果您想限制显示的行数,可以使用以下代码:

如果你想要限制要展示的行数,你可以这样做:

Model.limit(n)
例如:
User.limit(5)

您还可以使用select指定要显示的字段:

User.select("name, email").limit(5)

2
在研究了 hirb 之后,我还推荐使用 wirbleawesome-print。相关链接:http://iain.nl/customizing-irb-2010-edition - Nick

8
您还可以查看table_print,它的使用方式如下所示:

table_print

。它可以帮助您更好地呈现表格数据。
$ gem install table_print
$ rails c
> require 'table_print'
> tp Book.all
AUTHOR            | SUMMARY                         | TITLE
-----------------------------------------------------------------------
Michael Connelly  | Another book by Michael Con...  | The Fifth Witness
Manning Mardale   | From acclaimed historian Ma...  | Malcolm X
Tina Fey          | Worth it. -Trees                | Bossypants

2
使用 hirb
require 'hirb'
puts Hirb::Helpers::Table.render(ARRAY_OF_OBJECT_OR_HASHES)

# Examples:

puts Hirb::Helpers::Table.render([[1, "Terminator I"], [2, "Terminator II"]])

+---+---------------+
| 0 | 1             |
+---+---------------+
| 1 | Terminator I  |
| 2 | Terminator II |
+---+---------------+

puts Hirb::Helpers::Table.render([{ id: 1, name: "Terminator I" }, { id: 2, name: "Terminator II" }])

+----+---------------+
| id | name          |
+----+---------------+
| 1  | Terminator I  |
| 2  | Terminator II |
+----+---------------+

# specifying the order of the fields
puts Hirb::Helpers::Table.render([{ id: 1, name: "Terminator I" }, { id: 2, name: "Terminator II" }], fields: [:name, :id])

+---------------+----+
| name          | id |
+---------------+----+
| Terminator I  | 1  |
| Terminator II | 2  |
+---------------+----+

1

是的。看看 hirb gem。还值得尝试的是 wirbleawesome_print


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接