Мои данные похожи на это:
class Team < ActiveRecord::Base
has_many :persons
has_one :leader
end
class Person < ActiveRecord::Base
belongs_to :team
end
Человек принадлежит только к одной Команде, но из многих членов команды есть только 1 лидер.
Первый вопрос: должен ли я использовать принадлежащий_ к вместо has_one в модели команды?
Второе: команда создается из множества людей и лидера, известного изначально. Как это сделать?
В настоящее время я делаю что-то подобное в моем контроллере:
@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 имеет первый идентификатор, я полагаю, потому что @ team.save сначала сохраняет ассоциацию лидеров. Мне нужно, чтобы они были в том порядке, в котором они предоставляются.
Спасибо!