私のデータは次のようになります。
class Team < ActiveRecord::Base
has_many :persons
belongs_to :leader, :class_name => "Person"
end
class Person < ActiveRecord::Base
belongs_to :team
end
次のようにチームを作成します。
@team = Team.new
for (each new person as p)
new_person = @team.persons.build
new_person.name = p.name
if p.is_marked_as_leader
@team.leader = new_person
end
end
@team.save
@team.persons をリストすると、@team.leader が最初の id を持ちます。これは、@team.save が person の前にリーダーの関連付けを保存しているためだと思います。私はそれらが提供されている順序である必要があります.
ありがとう!