0

ハッシュと配列を次のように定義しました。

POPULATION_SUMMARIES = {
    'ACO' => [   # year , member_count
        [2013, 523031],
        [2012, 492349],
        [2011, 432573]
    ]
}

したがって、挿入したいテーブルはPopulationSummaryです。そして、その行/フィールドは次のようになります:

    ACO, 2013, 523031
    ACO, 2012, 492349
    ACO, 2011, 432573
Org_id, year, member_count

DBでは、実際にはそれらの「ACO」またはその他のもののIDであり、基本的に別のテーブル(つまり、組織テーブル)の外部キーです。

だから私はこれをループして構造を読んでテーブルに書き込もうとしています。私はこのようなものまで行きました:

  POPULATION_SUMMARIES.each do |k, v|
    org_id = Organization.find_by_name(k).id  # so for example ID of ACO
    v.each do |o| # now read elements of each array
      # HERE :(  QUESTION
    end
  end

したがって、私が問題を抱えている部分は、配列から読み取った最初の数値を年フィールドに挿入し、テーブルから読み取った2番目の数値を次のように言う方法です:member_countフィールドに挿入します....

4

1 に答える 1

1

これはあなたを近づけるはずです:

POPULATION_SUMMARIES.each do |org_name, summaries|
  org = Organization.find_or_create_by_name(org_name)

  summaries.each do |year, member_count|
    PopulationSummary.create({
      :organization => org,
      :year         => year,
      :member_count => member_count
    })
  end
end
于 2013-02-17T22:58:46.123 に答える