Railsで親モデルを保存した時に子モデルを作る


ユーザーとプロフィールなどのhas_oneの関係にある場合にレコードを挿入したい場合があると思います。

ActiveRecordにはafter_createというコールバックがあるみたいなのでこんな感じに書いてみました。

class User < ActiveRecord::Base

  after_create :create_profile

  private
    def create_profile
      if self.id
        Profile.create(:name => "name", user_id: self.id)
      end
    end

end

ちなみに after_saveというコールバックもあるみたいですがこちらはモデル作成、更新時に毎回呼び出されるらしいです。