[Rails] 중첩된 배열에 해시[참고] 작성

7618 단어 RailsRubytech

의 목적

  • 다음 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
    
    !
    점점 더 깊어지는 것도 똑같은 방법으로 대응할 수 있어요.

    좋은 웹페이지 즐겨찾기