初めに
メモがわりに使っているのでわかりにくい部分や省略しているところがありますがご了承ください。
2重ハッシュから値を取り出そう
user_data = [
{user: {profile: {name: 'George'}}},
{user: {profile: {name: 'Alice'}}},
{user: {profile: {name: 'Taro'}}},
]
上記のハッシュを持つ変数user_dateから以下の取り出します。
George
Alice
Taro
解説
ではまずハッシュから値を取り出すには以下のような記述をします。
ハッシュ[取り出したい値のキー]
しかし今回はハッシュの中にハッシュが入っているためこれだけでは目的の値を散り出すことができません。
ではどのように書いていくかというと順番に取り出していきます。
書き方としては以下のようになります。
ハッシュ[取得したいキー][取得したいキー][取得したいキー]
今回はnameというキーを取り出したいので順番に書いていくと以下のようになります。
ハッシュ[:user][:profile][:name]
そして今回の肝はこのハッシュが配列で格納されているということです。配列の取り出し方は色々ありますがeach分を使い1つ1つ取り出すのが綺麗に収まると思います。
user_data.each do |u|
puts u[:user][:profile][:name]
end
以上です。ハッシュのなかにハッシュがあり見た目がエグいですが、基本は1つ1つ順番に取り出していく形になります。