1

呼び出しの結果のように、ハッシュのリストがある場合、.attributes行ごとの読みやすい出力を作成する簡単な方法は何ですか? のショートカットのように

u.attributes.each {|p| puts p[0].to_s + ": " + p[1].to_s}
4

4 に答える 4

2

独自のメソッドを作成しない限り、もっと短くできるかどうかはわかりません。

マイナーな機能強化は次のとおりです。

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
于 2012-12-10T08:36:52.360 に答える
1

awesome_printは行く方法です

gem install awesome_print

require "ap"
ap u.attributes
于 2012-12-10T16:17:02.313 に答える
1

開発目的の出力 (たとえば、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をきれいに印刷する方法はありますか?

于 2012-12-10T08:44:20.343 に答える
1

コメントで述べたように、yaml でハッシュを表示するy hashorを使用するのが好きです。他のオブジェクトにも使用できます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 

それについての有益な回答もあります。

于 2012-12-11T23:57:14.910 に答える