当我有一个哈希列表(例如.attributes
调用的结果)时,创建逐行可读输出的捷径是什么?就像一个捷径
u.attributes.each {|p| puts p[0].to_s + ": " + p[1].to_s}
当我有一个哈希列表(例如.attributes
调用的结果)时,创建逐行可读输出的捷径是什么?就像一个捷径
u.attributes.each {|p| puts p[0].to_s + ": " + p[1].to_s}
除非您创建自己的方法,否则我不确定您是否可以缩短它。
一个小的改进是:
u.attributes.each {|k,v| puts "#{k}: #{v}"}
或者您可以创建一个扩展名Hash
:
class Hash
def nice_print
each {|k,v| puts "#{k}: #{v}"}
end
end
u.attributes.nice_print
如果您正在寻找用于开发目的的输出(例如在 Rails 日志文件中),inspect
或者pretty_inspect
应该这样做:
u.attributes.inspect
或者
u.attributes.pretty_inspect
但是,如果您正在寻找一种在 Rails 控制台中很好地打印的方法,我相信您将不得不编写自己的方法,或者使用像awesome_print这样的 gem ,请参阅:Ruby on Rails:variable.hash_set.inspect 的漂亮打印。 ..有没有办法在控制台中漂亮地打印 .inpsect ?
正如我在评论中所说,我喜欢使用y hash
或puts YAML.dump(hash)
在 yaml 中显示您的哈希值。它也可以用于其他对象。
h = {:a => 1, :b => 2, :c => 3}
# => {:a=>1, :b=>2, :c=>3}
y h
#---
#:a: 1
#:b: 2
#:c: 3
# => nil