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