Вложенные формы в Rails с динамически создаваемыми объектами
Я ищу способ создания формы для ассоциации has_many, чтобы иметь возможность динамически устанавливать количество объектов, которые будут туда попадать.
До сих пор я видел примеры, когда вы инициализируете связь с пустыми объектами, например так:
2.times { @office.employees.build }
Итак, после того, как вы можете использовать fields_for, или что-то еще, и это работает. В ситуации, подобной моей, я не знаю точно, сколько сотрудников будет добавлено (может быть даже ноль).
Есть ли у них какое-то простое решение о том, как получить форму, которая будет динамически создавать хеш, например:
{..., "employee" => {"0" => {...}, "1" => {...}}
Заранее спасибо.
2 ответа
Взгляните на Ryan Bates Railscasts по вашей теме:
http://railscasts.com/episodes?utf8=%E2%9C%93&search=nested+model+form
Вы найдете идеальное решение в этих уроках.
Райан объясняет, как вы можете добавить ссылку для динамического добавления и удаления необходимых полей формы.
Пожалуйста, настройте гем nessted_form, используйте эту ссылку
= simple_nested_form_for @ffice do |f|
= f.fields_for :employees do |employee|
= render 'employee_fields', :f => employee
.links
= image_tag('plus.png', :class => 'plus-link')
= f.link_to_add 'Add another employee', :employees
"link_to_add
"Этот вспомогательный метод определен в nessted_form
, помогает в добавлении многих сотрудников формы.
Я надеюсь, что это поможет.