1

開発目的でデータを処理するためにデータベースにデータを入力する Rake タスクを作成しています。(ただし、テストではFactoryGirlを使用しているため、それについては話していません。)

たとえば、デモ データベースに 2 つのサンプル組織があり、次のように定義したとします。

sample_organizations = [ '37 Signals', 'Fog Creek']

そして、次のようにDBにデータを入力する小さな方法:

def create_organizations
  sample_organization.each { |item|
    Organization.first_or_create(
        name: item,
        time_zone: 'Central'
    )
  }
end

したがって、2 か月後に 3 番目の組織を追加したい場合は、コードの先頭に移動して、その配列に別の組織名を手動で入力するだけです。メソッドは引き続き機能し、それを作成します。

ここで質問を開始します。入力するテーブルが他にもあります。たとえば、集計テーブルは組織テーブルからぶら下がっているため、各組織は多くの集計を持つことができるためorganization_id foreign key、集計テーブルにも入力する必要があります。それでも、上記の方法create_summariesと同様のことを行うような方法が必要ですcreate_organizationが、今回は Summaries テーブルに入力します。トリッキーな部分は、テーブルの organization_id フィールドに入力することです。

これにどのようにアプローチすればよいですか?Summaries テーブルに次のフィールドがあるとします。 id (auto generate by Rails) , organization_id, name, member_count

4

1 に答える 1

1

このようなタスクには Populator gem を使用してみてください。使いやすく、複雑な構造を生成できます。スクリーンキャスト.

それらを使用できないため、ランダムな親オブジェクトを選択するか、ハッシュで名前で指定します。

summaries = [{:name => "foo", :organization => "bar"}]
于 2013-02-16T14:41:24.553 に答える