Rails3-関連付けられたテーブルafter_createにデフォルト値を追加する
-
14-11-2019 - |
質問
親が作成された後に関連するDBをintiatlize追加する方法を探しています。
私は単純なものを持っています 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フォームからユーザーを関連付ける場所を取得していますか(例:ユーザーはチェックボックスで事前定義された場所をオフにチェックすることができます)?または、ユーザーがコンマ区切りリストを介して場所を提供でき、ユーザー作成アクションは重複を取り除き、その場で新しいものをdbに追加する必要があ
所属していません StackOverflow