【问题标题】:Is there a way in the Rails Console to print a table of database contents?Rails 控制台中是否有打印数据库内容表的方法?
【发布时间】:2012-05-14 22:20:51
【问题描述】:

我正在寻找一种简洁的方法来在 Rails 控制台中打印我的 5 行数据库的内容,其中包含 2 列。

有什么想法吗?我在 Google 上四处搜索,但没有找到太多。

【问题讨论】:

  • 我有点困惑。 2 列的 5 元素数据库 是什么意思?
  • 抱歉,5行2列

标签: ruby-on-rails ruby rails-console


【解决方案1】:

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

  1. 安装 hirb gem: gem install hirb
  2. 将此 gem 添加到项目的 Gemfilegem 'hirb'
  3. 转到项目的根文件夹并运行 Rails 控制台:rails c
  4. 在控制台中启用hirb

    require 'hirb'
    Hirb.enable
    

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

Model.limit(n)

例如:

User.limit(5)

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

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

【讨论】:

【解决方案2】:

您也可以结帐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

【讨论】:

    【解决方案3】:

    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  |
    +---------------+----+
    

    【讨论】:

      【解决方案4】:

      是的。查看hirb gem。同样值得一试的是wirbleawesome_print

      【讨论】:

        猜你喜欢
        • 2011-11-25
        • 2011-07-21
        • 2011-09-25
        • 2015-03-16
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 2018-12-01
        • 1970-01-01
        相关资源
        最近更新 更多