私のデータは次のようになります。
class Team < ActiveRecord::Base
has_many :persons
has_one :leader
end
class Person < ActiveRecord::Base
belongs_to :team
end
個人は 1 つのチームにしか所属しませんが、多くのチーム メンバーの中でリーダーは 1 人だけです。
最初の質問: Team モデルで has_one の代わりに belongs_to を使用する必要がありますか?
2 番目: チームは、最初にわかっている多くの人物とリーダーで作成されます。これはどのように行うべきですか?
現在、コントローラーで次のようなことを行っています。
@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 が最初にリーダーの関連付けを保存するためだと思います。提供された順序である必要があります。
ありがとう!