1

親が作成された後に、関連付けられた DB を初期化する方法を探しています。

私は、フィールドを持つ単純なUserモデルと、フィールドを持つusername関連する ( has_many) 子Placeモデルを持っていますplacenames

ユーザーが正常に作成された後、表にPlacesはヨーロッパ、アジア、アフリカなどのエントリが表示されます。メソッドを使用する方法だと思いますがafter_create、親モデルから作成をトリガーする方法が見つかりません。

4

2 に答える 2

3

after_createこのように宣言できます

class User 

  after_create :initialize_places

  def initialize_places
    self.places.create(:placename => 'Europe')
    self.places.create(:placename => 'Asia')
    self.places.create(:placename => 'Africa')
  end
end

そして、このようにユーザーを作成します

user = User.create(:username => 'The Black Adder')
于 2012-02-29T16:01:58.040 に答える
0

うーん、何をしようとしているのか正確にはわかりません。

#create フォームからユーザーを関連付ける場所を取得していますか (たとえば、ユーザーは定義済みの場所をチェックボックスでチェックできますか)。または、ユーザーはカンマ区切りのリストを介して場所を指定でき、ユーザー作成アクションは重複を取り除き、その場でデータベースに新しいものを追加する必要がありますか?

于 2012-02-29T15:56:43.433 に答える