Надеюсь, мой вопрос понятен, иначе я рад уточнить.
У нас запланировано это спортивное событие, и я с удовольствием регистрирую людей. :)
Факты:
- можно создать команду из 5-10 человек.
- Нужно знать порядок, в котором стартуют люди.
- Нужно знать, кто лидер команды.
Я сделал форму в следующем стиле:
o [____Write first name here___]
<--- это текстовое поле </em>
o [____Write second name here__]
o [___________ ... ____________]
- ...
«o» - это радио-кнопка, используемая для выбора лидера команды.
У меня есть модель Персона и модель Команда . У каждой команды есть leader_id (который является одним из идентификаторов людей). Кроме того, каждая команда :has_many
человек.
В контроллере у меня
def create
@team = Team.new(params[:team])
@team.save #just assume there are no errors
end
В представлении, которое я имею (для радио-кнопок):
<input id="team_leader_id_**????**"
name="team[leader_id]"
type="radio"
value="**????**"
/>
<input id="team_leader_id_**????**"
name="team[leader_id]"
type="radio"
value="**????**"
/>
# etc.
Мой вопрос: что мне поставить на **????**
?
Я еще не знаю идентификаторы людей, так как они не были созданы. Я должен поместить туда мета-идентификатор, который ruby на рельсах распознает и связывает все правильно?
Остальное не нужно читать (оно описывает хак, который я использую)
Как уже говорилось, в данный момент я делаю некрасивый хак: сначала сохраните команду (без генерации лидера), затем выберите ту же команду из БД, найдите ее людей и найдите первого человека, соответствующего значению
params[:team][:leader_id].
Наконец сохранить идентификатор этого человека в поле leader_id команды.
Но этот код неэффективен, огромен и содержит ошибки, я подозреваю, что есть более простой способ.