我的模型附加了回形针字段,用于不同类型的文件。作为示例,文档类型“test_doc”允许上载三个文件,并且模型字段被命名为“test_doc1”,“test_doc2”,“test_doc3”。其他文档类型,如“another_doc”,具有不同数量的允许文件,所有文件都使用相同的命名约定命名。
我正在尝试创建一个通用文档上传页面,该页面获取需要添加的文档类型(存储在@document_type变量中)以及可以为该类型上载的最大文档数量(存储在@max_num变量中) )然后在视图中输出适当数量的字段
我想以下列格式输出字段,但是在使用文档类型和文档变量数的循环中输出。这需要在此代码块中的几个位置进行更改以动态输出变量,但我无法弄清楚如何执行此操作。
我希望有人可以帮助我将这段代码转换成一个循环,使用上面两个变量来输出正确数量的字段。
<%= f.input :aou_document1, :label => false, :wrapper => :append, :class => "form-group" do %>
<label class="col-sm-3 control-label no-padding-right">
<% if @lap.aou_document1.blank? %>
Choose <%= @document_type %>
<% else %>
<%= link_to @lap.aou_document1.url do %>
<i class="icon-file-alt"></i>
<%= @lap.aou_document1_file_name[0..40] %>...
<% end %>
<% end %>
</label>
<div class="col-sm-9">
<% if !@lap.aou_document1.blank? %><span class="pull-left"><div class="space-4"></div>Replace with</span><% end %>
<% if !@lap.aou_document1.blank? %><div class="space-4"></div><% end %><%= f.file_field :aou_document1, :class => "col-xs-7 col-sm-5" %>
</div>
<% end %>
答案 0 :(得分:0)
fields_for帮助器将自动插入父级的所有嵌套字段,您不应该手动处理它。
您的通用表单应如下所示:
<%= form_for @document do |f| %>
<%= fields_for :files do |file| %>
your code for the files goes here
然后在控制器中,您只需为每个文档构建正确数量的文件。或者,您可以在创建文档时在回调中执行此操作。有很多方法可以做到,但绝对要查看fields_for标记。