Вложенные формы в 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, помогает в добавлении многих сотрудников формы.

Я надеюсь, что это поможет.

Другие вопросы по тегам