PeaceJet

証券会社で証券外務員をやりながら、マーケティングやデータ分析・UI/UX改善などを行っています。

関連テーブルへ初期値を流し込む方法。

f:id:PeaceJet:20180407204058p:plain

関連テーブルへ初期値を流し込む方法

deviseなどの認証機能を使用していた場合に、他のテーブルとリレーションシップするケースは結構あるとおもいます。
そして、ユーザーが登録を終えた時点で、複数のテーブルを有効にしたいということもあるのではないかと思います。

そのとき、初期値を流し込むのにハマったので共有します。

Userモデル

通常、Userモデルを使用することが多いと思いますので、Userとします。
has_many、has_one、belongs_toなどのリレーションシップアノテーション?を使用した場合に、
Userモデルにデータが作成されたタイミングで、他のテーブルも同様に作成して欲しくなるものです。

before_action :build_default_model
private
def build_default_model
    # たとえば、年齢を全て5歳で始めるには・・・
    build_model(age: 5)
    true
end

このようにしておくことで、データを流し込むことが出来ます。
github.com

/* ブログタイトルを取得 */