提问人:Bohn 提问时间:1/17/2013 最后编辑:tereškoBohn 更新时间:8/31/2022 访问量:30975
使导轨控制台输出更漂亮一些
Making the rails console output a little more pretty
问:
Rails 控制台的输出如下所示:
User.all
=> [#<User id: 1, name: "Michael Hartl", email: "[email protected]",
created_at: "2011-12-05 00:57:46", updated_at: "2011-12-05 00:57:46">,
#<User id: 2, name: "A Nother", email: "[email protected]", created_at:
"2011-12-05 01:05:24", updated_at: "2011-12-05 01:05:24">]
我想知道是否有命令可以使它更容易阅读?例如,MongoDB 控制台中有一个 .pretty 命令,该命令将输出格式化得更加亲眼。但不确定 Rails 中是否有类似的东西。
答:
8赞
Anthony Alberto
1/17/2013
#1
你可以试试awesome_print宝石:https://github.com/michaeldv/awesome_print
安装后,您可以使用以下命令漂亮地打印任何对象:
ap User.all
评论
0赞
CouchDeveloper
9/12/2013
没有为我打印 ActiveRecord。不过,它确实可以很好地打印其他容器。
0赞
ltdev
2/6/2017
@Anthony 阿尔贝托 在 github 页面 github.com/awesome-print/awesome_print#awesome-print 它说: 注意:awesome_print v1.2.0 是支持 v1.9.3 之前的 Ruby 版本和 v3.0 之前的 Rails 版本的最后一个版本。即将推出的 awesome_print v2.0 将需要 Ruby v1.9.3 或更高版本以及 Rails v3.0 或更高版本。这意味着我不能在 Rails 4 或 5 中使用?awesome_print
0赞
Finn
1/7/2018
@Lykos,这意味着当使用低于 3 的 Rails 版本时,你不能使用 2.0 版本。你可以与任何 Rails 版本一起使用,你只需要选择合适的版本来匹配: a) 如果你使用的是 Rails 3、4 或 5,你应该使用 .b) 如果您使用的是 Rails 1 或 2,则必须使用 .awesome_print
awesome_print
awesome_print
awesome_print v2.0
awesome_print v1.2
0赞
Daniel Nalbach
10/21/2019
awesome_print v1.8.0 似乎是最新的,对我来说,它与 Rails 5.2.3 配合得很好,包括如上所述的 User.all
11赞
Leszek Andrukanis
1/17/2013
#2
您也可以使用这颗不可思议的宝石:
30赞
Ben
1/17/2013
#3
如果您不想使用宝石,这里是低租金版本:
puts User.all.to_yaml
评论
0赞
user12121234
7/24/2015
很好的建议,因为它不需要依赖项
76赞
valk
3/19/2014
#4
更优雅的速记:
y User.all
评论
1赞
Eli Gassert
2/16/2015
这是迄今为止我发现的最简单的格式,也是最好的输出格式。
2赞
gfd
10/6/2015
哇!我不知道这个,但它可以完成这项工作......并且适用于任何项目,无需添加 gem(它是内核 AFAIK 的一部分)!!完美,谢谢!
1赞
jgrant
11/29/2016
正是我需要的。谢谢
4赞
Steve Carey
5/12/2017
我不知道是不是只有我一个人,但这比原来的问题还要糟糕。而不是将所有记录捆绑在一起,这给了我每条记录大约 50 行,其中大部分是无用的信息。
2赞
valk
5/13/2017
@SteveCarey 事实上,从 Rails v4 开始,我认为它打印了所有内容。因此,如果这对您不起作用,请尝试: .User.find_each { |u| y u.attributes }
2赞
Derrick Mar
4/20/2015
#5
有一种很棒的宝石叫做 Jazz Hands。包括 rails 控制台中基于 pry 的增强功能、hirb 和 awesome_print。
P.S. 你可能想使用fork Jazz Fingers来使其与Ruby 2.1.2兼容
6赞
jasonleonhard
2/19/2016
#6
以下是一些选项
YAML 格式(无依赖项)
y your_code
awesome_print
gem install awesome_print
然后在 irb 或 pry
require 'awesome_print'
ap your_code
5赞
Mirror318
5/18/2017
#7
用pry
不带撬:
2.3.1 :001 > SupplierTerm.first
SupplierTerm Load (39.4ms) SELECT "supplier_terms".* FROM "supplier_terms" ORDER BY "supplier_terms"."id" ASC LIMIT $1 [["LIMIT", 1]]
=> #<SupplierTerm id: "1bc48081-402a-41d9-b6af-d783c28bb363",
entity_id: "927b398f-2bbd-40cb-b668-eb284e26688d", uses_custom_terms:
false, requires_credit_check: false, requires_identity_check: false,
requires_guarantees: true, requires_trade_reference_check: true,
minimum_guarantees: 1, minimum_trade_references: 1, trade_account_limit:
20000, created_at: "2017-02-01 22:11:49", updated_at: "2017-02-01
22:11:49", created_by_id: "2c314f8a-6d84-48c8-a963-75130e97f1a6",
updated_by_id: "2c314f8a-6d84-48c8-a963-75130e97f1a6", questions: [],
minimum_approvers: 1, excluded_sources: nil>
带撬:
2.3.1 :002 > pry
[1] pry(main)> SupplierTerm.first
SupplierTerm Load (0.4ms) SELECT "supplier_terms".* FROM "supplier_terms" ORDER BY "supplier_terms"."id" ASC LIMIT $1 [["LIMIT", 1]]
=> #<SupplierTerm:0x007fb4e1feff40
id: "1bc48081-402a-41d9-b6af-d783c28bb363",
entity_id: "927b398f-2bbd-40cb-b668-eb284e26688d",
uses_custom_terms: false,
requires_credit_check: false,
requires_identity_check: false,
requires_guarantees: true,
requires_trade_reference_check: true,
minimum_guarantees: 1,
minimum_trade_references: 1,
trade_account_limit: 20000,
created_at: Wed, 01 Feb 2017 22:11:49 UTC +00:00,
updated_at: Wed, 01 Feb 2017 22:11:49 UTC +00:00,
created_by_id: "2c314f8a-6d84-48c8-a963-75130e97f1a6",
updated_by_id: "2c314f8a-6d84-48c8-a963-75130e97f1a6",
questions: [],
minimum_approvers: 1,
excluded_sources: nil>
45赞
myhouse
9/20/2017
#8
我一直在使用 .pp 代表“漂亮的印刷品”。无需宝石。pp
在 rails 控制台上,尝试执行以下操作:
pp User.all
如果只是执行 User.all,您将在记录中显示每个属性及其值,而不是它们的捆绑。
文档如下:
https://ruby-doc.org/stdlib-2.1.0/libdoc/pp/rdoc/PP.html
我正在使用 Rails 5.1.3 和 ruby 2.4.1p111,它已经安装在我的项目中。如果这不起作用,我想你必须这样做.
我希望这会有所帮助。require 'pp'
评论
2赞
workernode
6/2/2018
这是我项目的最佳答案。Yaml 格式的 ruby 对象不是漂亮的打印。
评论