Ruby on rails 如何在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
> 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")