Как мне ввести результаты гонки в моем приложении? - PullRequest
0 голосов
/ 23 декабря 2010

В моем приложении три модели: спортсмены, гонки и результаты.У спортсмена много результатов, у гонки много результатов, а результат принадлежит спортсмену и расе.Каждая гонка имеет ровно 12 результатов.

Как начинающий разработчик Rails, у меня возникают проблемы с пониманием того, как создать веб-форму для ввода результатов 12 гонок.Должен ли я сохранять результаты в качестве отдельного ресурса или вкладывать их в расы?В моем контроллере, я бы создал 12 экземпляров объекта результата под действием New?Как отправить соответствующий race_id для каждого экземпляра?

Если бы вы могли помочь мне прояснить мои мысли по этой проблеме и указать мне правильное направление, это было бы очень признательно!

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

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

Ваша веб-форма, вероятно, должна основываться на сценарии использования 12 спортсменов, которые заняли одну гонку. Это означает, что вы можете использовать несколько входов HTML для каждого из результатов:

<input type="hidden" name="race[results_attributes][][rank]" value="1" />
<input type="text" name="race[results_attributes][][athlete_id]" />
<input type="hidden" name="race[results_attributes][][rank]" value="2" />
<input type="text" name="race[results_attributes][][athlete_id]" />

Затем вы можете изменить модель расы, чтобы принимать входные данные для результатов:

class Race
  has_many :results
  accepts_nested_attributes_for :results
end

И просто передайте атрибуты в операторе обновления:

Race.find(params[:id]).update_attributes params[:race]
0 голосов
/ 23 декабря 2010

Я уверен, что есть несколько способов приблизиться к этому.Вы, конечно, можете вкладывать Results в Races, но тогда возникает вопрос, создаете ли вы Results одновременно с их Race или нет (об этом стоит подумать, потому что вам нужно знать,как привязать ваш Results к вашему Race, например, имеет ли каждая форма Result скрытое поле race_id? Если так, то Race, вероятно, уже должен существовать).Но в любом случае это, вероятно, будет 12 Result форм с Result.new в качестве объекта.

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