У меня проблема с link_to_add_association в simple_form_for: дополнительные поля добавляются перед link_to_add_association, и уже существует поле, отображаемое после этой ссылки. Google ничего не говорит об этом, поэтому я надеюсь на любую помощь ...
вот мой код:
= link_to_add_fields "Add image", f, :attachments
.attach
= f.simple_fields_for :attachments, html: {multipart: true} do |d|
= render "attachment_fields", {f: d, item: "Main"}
А вот моя форма attachment_fields:
.nested-fields
= f.input :id, as: :hidden
= f.input :file, as: :file, label: false, input_html: {value: f.object.file || ""}
= f.input :_destroy, as: :boolean, label: "Delete", checked_value: "1", unchecked_value: ""
= f.simple_fields_for :metadata do |field|
= field.input :section, as: :hidden, input_html: {value: f.object.metadata["section"]}
= field.input :comment, as: :text, label: "Comment", input_html: {value: f.object.metadata["comment"]}
Я уже пытался написать свой собственный link_to_add_fields, но, кажется, он делает то же самое:
def link_to_add_fields(name, f, association)
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render(association.to_s.singularize + "_fields", f: builder)
end
link_to(name, '#', class: "add_image_fields", data: {id: id, fields: fields.gsub("\n", "")})
end