呼び出しの結果のように、ハッシュのリストがある場合、.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: pretty print for variable.hash_set.inspect . ..コンソールに.inpsectをきれいに印刷する方法はありますか?
コメントで述べたように、yaml でハッシュを表示するy hash
orを使用するのが好きです。他のオブジェクトにも使用できます。puts YAML.dump(hash)
h = {:a => 1, :b => 2, :c => 3}
# => {:a=>1, :b=>2, :c=>3}
y h
#---
#:a: 1
#:b: 2
#:c: 3
# => nil
それについての有益な回答もあります。