0

私は、1対多の関係について、私が得られない振る舞いをしており、それは間違いなく私を狂わせます.

モデル 1 は次のとおりです。

class Account < ActiveRecord::Base
  belongs_to :organization, :autosave => true
  validates :organization, :presence => true
end

モデル 2 は次のとおりです。

class Organization < ActiveRecord::Base
  has_many :accounts, :autosave => true
  validates :accounts, :presence => true
end

次に、Rails コンソールで次のようにします。

>> acc = Account.new
>> org = Organization.new
>> org.accounts << acc

>> org.accounts
[#<Account id: nil, organization_id: nil, created_at: nil, updated_at: nil>]

>> acc.organization
nil

またはその逆:

>> acc = Account.new
>> org = Organization.new
>> acc.organization = org

>> acc.organization
#<Organization id: nil, created_at: nil, updated_at: nil>

>> organization.accounts
[]

これは正常な動作ですか?関係の両側を手動で更新する必要がありますか?!

4

2 に答える 2

1

答えは簡単で、最初にオブジェクトを保存するだけです

acc = Account.new
org = Organization.new 
acc.organization = org
acc.save
于 2012-09-26T10:03:20.967 に答える
1

参照thisbuild

org = Organization.new
acc = org.build_account.new
org.save
于 2012-09-26T10:03:55.407 に答える