Смешивание форм в Rails - PullRequest
       22

Смешивание форм в Rails

0 голосов
/ 07 января 2012

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

Я изложил это как два объекта: Tournament и TournamentExtras, где первый has_one :tournament_extras и последний belongs_to :tournament. Tournament также accepts_nested_attributes_for :tournament_extras.

Я бы хотел, чтобы это отображалось как единая форма. Поля в этих двух объектах связаны, то есть вы можете добавить дату начала (к Tournament), но только платящие клиенты могут добавить дату окончания (к TournamentExtras), но, поскольку два поля логически реализованы, они должны отображаться после друг друга в форме.

Как мне это сделать?

Я попытался открыть циклы form_for и fields_for друг с другом (перед добавлением каких-либо полей), надеясь, что я смогу добавить любое поле, где мне будет угодно. Это не сработало; очевидно, вы не можете ссылаться на объект формы в цикле полей (?).

1 Ответ

1 голос
/ 07 января 2012

form_form и fields_for должны работать друг с другом.

В некотором смысле это скелет:

form_for(@tournament) do |f|
  f.fields_for(@tournament.tournament_extra) do |g|
  end
end 
...