私は2つのモデルを持っています:
class User < ActiveRecord::Base
before_create :add_address
has_one :address
def add_address
self.address_id ||= Address.generate_new.id
end
end
と
class Address < ActiveRecord::Base
belongs_to :user
def self.generate_new
new_address = # some code generating UUID
Address.create!({address: new_address})
end
end
User.new を作成すると、アドレスの関連付けが作成されて保存され、user.address でフェッチできます。mysql のアドレス行には正しい user_id がありますが、mysql のユーザーには address_id = nil があります。私が間違っていることは何ですか?User.new\user.build_address をアドレスの作成と保存の両方の方法で試しましたが、ユーザーは常に address_id = nil を持っています