0

私は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 を持っています

4

2 に答える 2

0

ユーザーモデルに address_id 列があるのはなぜですか? アソシエーションがアドレス テーブルに user_id を持っていれば十分です。

于 2013-06-13T14:31:10.883 に答える