Я пытаюсь создать сложную форму со множеством вложенных моделей и сделать ее динамичной. Теперь я обнаружил, что создание вложенной модели не сложно с accepts_nested_attributes_for, но делает ее вложенной и динамической, казалось бы, невозможной, если было несколько вложенных моделей.
Я наткнулся на http://github.com/ryanb/complex-form-examples/blob/master/app/helpers/application_helper.rb, который делает это очень элегантно. Может ли кто-нибудь пролить свет на строки 13 и 16?
13 form_builder.object.class.reflect_on_association(method).klass.new
и
16 form_builder.fields_for(method, options[:object], :child_index => "new_#{method}") do |f|
Из интуиции строка 13 создает экземпляр нового объекта, но почему он должен делать так много вызовов методов? Я не мог найти документацию для опции: child_index в строке 16. Когда форма создается, очень большое число используется как индекс для новых моделей, тогда как существующие модели индексируются по их идентификатору. Как это работает?