Я пытаюсь сохранить множество новых объектов в форме в одном ранее существовавшем родительском объекте.
- form_for :parent_object do |f|
Это начало моей формы. И тогда внутри него я бы сделал:
- 2.times do
- fields_for :child_object do |f|
Теперь, если бы я сохранил это, он выглядел бы как ParentObject_Controller Действие обновления, которое было бы неудачным, потому что обновление не идентифицирует новые объекты.
Так что, если бы я хотел отобразить соответствующее действие Сохранить, мне нужно было бы настроить его следующим образом:
- form_for [@parent_object, @child_object] do |f|
- 2.times do
- fields_for :child_object do |f|
Эта форма затем отображает действие Сохранить, но только сохраняет последний дочерний объект.
Я бы показал вам мой контроллер, но вряд ли в этом есть смысл, потому что он ужасно ошибочен.
У меня вопрос, как бы вы сохранили множество новых объектов в форме в один ранее существовавший родительский объект?
Я много смотрел на работу Райана Бэйта и много других блогов и ТАКИХ постов по этому поводу. Кажется, ничто не указывает на конкретное создание новых дочерних объектов для одного ранее существующего родительского объекта.
Обновление:
У меня сложилось впечатление, что я должен переключить действия контроллера parent_object для def update
.
elsif params[:parent_object][:child_object]
@child_object = Child_Object.new(params[:child_object])
if @child_object.valid? && @parent_object.referrals << @child_object
redirect_to new_parent_object_child_object_path(@parent_object)
else
render :action => :new
end
В отладчике, если я помещаю отладчик в корень def update
, и я пишу:
>> params[:parent_object]
#=> nil
Интересно! Это означает, что когда child_object отправляется в контроллер parent_object, параметры для него не заполняются. Хаха, не знаю, что с этим делать ..
К сожалению, этот код не работает, это была просто моя попытка приблизиться. ;)