вложенные атрибуты и отправка идентификатора в качестве другого параметра - PullRequest
0 голосов
/ 24 декабря 2010

У меня есть 3 модели: гонки, результаты и спортсмены. У Атлетов много результатов, у Рас много результатов, и результаты принадлежат как спортсменам, так и расам. У меня также есть Результаты в качестве вложенного атрибута Рас. Вот моя частичная форма для добавления результатов в существующую гонку.

<%= form_for(@race) do |f| %>

<div class="field">
  <%= f.label :name %><br />
  <%= f.text_field :name %>
</div>
<div class="field">
  <%= f.label :date %><br />
  <%= f.datetime_select :date %>
</div>

<% f.fields_for :results do |r| %>
<div class="field">
 <%= r.label :position %><br />
 <%= r.text_field :position %>
 <%= r.label :athlete_id %><br />
 <%= r.text_field :athlete_id %>
</div>
<% end %>

Как видите, мне приходится вручную вводить позицию каждого спортсмена и его соответствующие идентификаторы, что является настоящей болью. Я хотел бы иметь позицию в качестве скрытого поля и просто ввести имя спортсмена вместо целого числа id. Когда я вписываю имя спортсмена в текстовый ввод, как я могу вместо этого ввести его в базу данных как athlete_id?

Ответы [ 2 ]

0 голосов
/ 02 января 2011

Я бы хотел использовать плагин rails auto_complete для динамического выбора спортсмена, которого вы хотите выбрать. Затем вы можете назначить выбранного спортсмена скрытому полю, чтобы гарантировать правильную связь идентификатора, но при этом позволить конечному пользователю ввести имя спортсмена и позволить рельсам охватить список потенциальных спортсменов так, как вы хотите.

0 голосов
/ 24 декабря 2010

Атлеты уже существуют?Если это так, просто введите collection_select для всех спортсменов, где значение равно athlete_id, а текст - имя спортсменаЗатем вы можете выбрать, какого спортсмена вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...