【Rails】ネストした配列の中にハッシュを作成【メモ】
8034 ワード
目的
- 以下のようなJSONを作成したい
- 企業情報の中に複数のエリアが存在し、エリアの中に複数の事業所が存在する場合
- 配列の中にハッシュを作成
サンプル
{
"企業ID": 9706,
"エリア": [
{
"ID": 15610,
"エリア名": "京都エリア",
"事業所": [
{
"id": 25497,
"事業所名": "京都支店1",
},
{
"id": 84455,
"事業所名": "京都支店2",
},
]
},
{
"ID": 55359,
"エリア名": "大阪エリア",
"事業所": [
{
"id": 84460,
"事業所名": "大阪支店1",
}
]
}
],
}
手順
整形サンプル
data = {}
# 会社(Corporation)→エリア(corporation_areas)→事業所(corporation_offices)という関連
corp = Corporation.preload([corporation_areas: :corporation_offices]).first
data[:"企業ID"] = corp.id
# 企業のエリアと事業所を抽出
corp.corporation_areas.each_with_index do |area, area_idx|
data[:"エリア"] << {
"ID": area.id,
"エリア名": area.area_name,
"事業所": []
}
# エリア毎の事業所
area.corporation_offices.each do |office|
# area_idxを指定することが重要
data[:"エリア"][area_idx][:"事業所"] << {
"id": office.id,
"事業所名": office.office_name,
}
end
end
respond_to do |format|
format.json { render json: data }
end
Author And Source
この問題について(【Rails】ネストした配列の中にハッシュを作成【メモ】), 我々は、より多くの情報をここで見つけました https://zenn.dev/koniman/articles/a2db38054c093c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol