Ruby on rails 如何在Rails控制台中将数组的每个元素打印在自己的行上?

Ruby on rails 如何在Rails控制台中将数组的每个元素打印在自己的行上?,ruby-on-rails,ruby,rails-console,Ruby On Rails,Ruby,Rails Console,当我运行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">, #<Po

当我运行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,...
尝试:

这里需要注意的是,
put
函数会在语句后自动添加一个换行符,如果您改为使用
print
,它将以类似于
put
的方式运行,而不在语句末尾添加换行符


如果您使用的是awesome_print,请尝试:

ap Post.all.to_a

此外,当您发出第一个命令时,输出将在末尾重复(根据您的注释),以显示当前表达式的输出。您可以通过附加一个;(分号)在命令末尾,如下所示:

Post.all.each { |e| puts e.inspect };
尝试:


请注意,
Post.all
不返回数组,而是返回一个
ActiveRecord::Relation
。对于一个真正的
数组
你需要
#到a
。这是可行的,但它会在结尾重复,没有换行符。这就是它的样子:谢谢,
ap Post.all.to_a
奏效了!颜色不减!分号技巧似乎不适用于Rails4。它似乎忽略了整个声明。但这是可行的:
Post.all.each{e|put e.inspect};1
在末尾打印1。@Chloe:应该可以。
分号将抑制整个表达式/命令的输出。因此,如果您的命令显式打印某些内容,则即使使用;,也会打印该内容;。尝试运行:
放置“帮助”
vs
放置“帮助”在您的控制台中。
Post.all.each {|e| puts e.inspect }
ap Post.all.to_a
Post.all.each { |e| puts e.inspect };
> puts Post.all.map(&:inspect).join("\n")