親が作成された後に、関連付けられた DB を初期化する方法を探しています。
私は、フィールドを持つ単純なUserモデルと、フィールドを持つusername関連する ( has_many) 子Placeモデルを持っていますplacenames。
ユーザーが正常に作成された後、表にPlacesはヨーロッパ、アジア、アフリカなどのエントリが表示されます。メソッドを使用する方法だと思いますがafter_create、親モデルから作成をトリガーする方法が見つかりません。
親が作成された後に、関連付けられた DB を初期化する方法を探しています。
私は、フィールドを持つ単純なUserモデルと、フィールドを持つusername関連する ( has_many) 子Placeモデルを持っていますplacenames。
ユーザーが正常に作成された後、表にPlacesはヨーロッパ、アジア、アフリカなどのエントリが表示されます。メソッドを使用する方法だと思いますがafter_create、親モデルから作成をトリガーする方法が見つかりません。
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')
うーん、何をしようとしているのか正確にはわかりません。
#create フォームからユーザーを関連付ける場所を取得していますか (たとえば、ユーザーは定義済みの場所をチェックボックスでチェックできますか)。または、ユーザーはカンマ区切りのリストを介して場所を指定でき、ユーザー作成アクションは重複を取り除き、その場でデータベースに新しいものを追加する必要がありますか?