当我运行Rails控制台时,如何在自己的行上显示每个项目?而不是
> Post.all
=> #<ActiveRecord::Relation [#<Post id: 1, title: "Post #0", comment: nil, link: "http://yahoo.com", user_id: 1, created_at: "2013-09-30 02:29:28", updated_at: "2013-09-30 02:29:28">, #<Post id: 2, title: "Post #1", comment: nil,...
它将显示为
> Post.all
=> #<ActiveRecord::Relation [
#<Post id: 1, title: "Post #0", comment: nil, link: "http://yahoo.com", user_id: 1, created_at: "2013-09-30 02:29:28", updated_at: "2013-09-30 02:29:28">,
#<Post id: 2, title: "Post #1", comment: nil,...
与Perl调试器中的x
类似。我试过了
Post.all.each {| E | e.inspect +“\ n”}
但这只会让情况变得更糟,而且不太方便。
我看到了Ruby on Rails: pretty print for variable.hash_set.inspect ... is there a way to pretty print .inpsect in the console?和https://github.com/michaeldv/awesome_print
但这似乎不起作用
irb(main):005:0> require "awesome_print"
=> false
irb(main):006:0> ap Post.all
#<ActiveRecord::Relation [#<Post id: 1, title: "Post #0",
答案 0 :(得分:14)
尝试:
Post.all.each {|e| puts e.inspect }
这里要注意的是puts
函数会在语句后自动添加换行符,如果您改为使用print
,它将以与puts
类似的方式运行,而不会使用换行符最后的角色。
如果您使用的是awesome_print,请尝试:
ap Post.all.to_a
此外,当您发出第一个命令时,输出将在结尾重复(根据您的注释)以显示当前表达式的输出。您可以通过在命令末尾附加; (分号)来抑制它,如下所示:
Post.all.each { |e| puts e.inspect };
答案 1 :(得分:4)
尝试:
> puts Post.all.map(&:inspect).join("\n")