我正在开发以下功能:
在一个页面中,用户可以一次上传多张图片,然后在下一页他可以编辑这些图片的字段。
所以我想要的基本上是一次编辑多个模型的表单(模型尚未保存在数据库中)。
该应用程序使用https://github.com/bootstrap-ruby/rails-bootstrap-forms来生成表单,但是如果您有一个只有来自 rails 的表单助手的解决方案,它可能足以帮助我解决我的问题.
我目前正在尝试
<%= bootstrap_form_tag(url: import_save_client_pictures_path(@client), layout: :horizontal) do |f| %>
<% @imported_pictures.each_with_index do |picture, index| %>
<%= bootstrap_form_for([@client, picture], url: import_save_client_pictures_path(@client), layout: :horizontal) do |ff| %>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4">
<%= image_tag(picture.file_tmp_url, class: 'img-responsive') %>
</div>
<div class="col-xs-12 col-sm-12 col-md-8 col-lg-8">
<%= ff.text_field :title, value: picture.title, required: true %>
<%= ff.text_field :description_en, value: picture.description_en %>
<%= ff.text_field :description_fr, value: picture.description_fr %>
<%= ff.text_field :description_de, value: picture.description_de %>
<%= ff.text_field :copyright, value: picture.copyright %>
<%= ff.collection_select :country, country_sorted_list_with_first_country(:XX), :first, :second, selected: picture.country %>
<%= ff.collection_check_boxes :category_ids, @client.categories.visible_for(current_user), :id, :title %>
<%= ff.text_field(:reference) if current_user.global_admin? %>
</div>
</div>
<%= '<hr />'.html_safe if (index + 1) != @imported_pictures.count %>
<% end %>
<% end %>
<div class="form-actions">
<%= f.primary %>
<% end %>
<%= link_to t(:cancel), [@client, :pictures], class: 'btn btn-default' %>
</div>
但是当我点击发送表格时,什么也没有发生。
我正在考虑只使用一个表单并为每张图片生成所有字段,并将字段名称设置为“field_name_index”之类的名称,但这不是很优雅。
我试图实现的是将某种数组传递给控制器,其数据类似于pictures = [picture_1_fields,picture_2_fields] 等等
你们能帮帮我吗?
谢谢 :)
编辑:准确地说,图片不是嵌套形式或其他一些模型