配列の中に、複数のユーザーの情報をハッシュとして持つuser_dataがあります。
user_data = [ {user: {profile: {name: 'Ken' }}},
{user: {profile: {name: 'Ichiro' }}},
{user: {profile: {name: 'Yuki'
}}},
]
#ターミナルでの出力結果
Ken
Ichiro
Yuki
user_dataを利用して、全てのユーザーの名前だけが出力されるようにRubyでコーディングを行いたい場合どうしたら良いでしょうか。
ハッシュから特定の値を取得するには、
ハッシュ[取得したい値のキー]
で取得ができます。2重ハッシュから特定の値を取得したい場合は、取得したい値のキーまで連続して指定すると取得することができます。
ハッシュ[取得したい値のキー][取得したい値のキー]
今回の場合、名前を取得したいので、
ハッシュ[:user][:profile][:name]
で取得ができます。
また、配列の中にハッシュが格納されているためeach文でハッシュの一つ一つを取り出して名前を取り出す必要があります。
よって
user_data = [ {user: {profile: {name: 'Ken' }}},
{user: {profile: {name: 'Ichiro' }}},
{user: {profile: {name: 'Yuki'
}}},
]
#の中の名前は
user_data.each do |u|
puts u[:user][:profile][:name]
end
のように記述することで名前を取り出すことができます。