5

この特定のことを尋ねたり検索したりする方法がわからないかもしれませんが、基本的には、親オブジェクトを作成するときにいくつかの関連モデルを作成したいと思います...次のような状況があるとします。

私はRecipeどのhas_many Ingredientモデルを持っています...一度にすべてを作成する方法はありますか?たとえば、これは私のシードタスクの一部であると言います:

Recipe.create({
  :title => 'apple pie',
  :description => 'just apple pie',
  :ingredients => {
    [0] => {:title => 'apples'},
    [1] => {:title => 'sugar'},
    [2] => {:title => 'pie crust'}
  }
})

それとも私は完全に夢中ですか?親モデルを作成せずに、次にすべての子を作成せずに、これを同様に行うための何らかの方法が必要です...など。

4

2 に答える 2

11

かなり近いです。http://apidock.com/rails/v3.0.0/ActiveRecord/NestedAttributes/ClassMethodsを参照してください

Recipe.create({
  :title => 'apple pie',
  :description => 'just apple pie',
  :ingredients_attributes => [
    { :title => 'apples' },
    { :title => 'sugar' },
    { :title => 'pie crust' }
  ]
})

レシピモデルに「accepts_nested_attributes_for:ingredients」を配置する必要があることに注意してください。

于 2010-12-31T07:30:21.777 に答える
1

これをレシピモデルに追加する必要もあります

attr_accessible :ingredients_attributes
于 2014-02-09T19:40:33.843 に答える