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