file_field上传按钮在编辑表单上多次出现

时间:2016-10-12 20:19:12

标签: ruby-on-rails twitter-bootstrap file-upload

我的_form.html.erb文件中包含此代码:

<%= f.fields_for :request_attachments do |ra| %>
    <div class="row westmontTextMuseo3" id="uploader">
        <div class="col-xs-12">
          <label class="btn btn-info"> Upload Files
                <%= ra.file_field :request_attachment_file, :multiple => true, name: "request_attachments[file][]", :style => "display: none", type: "file" %>
                <%= ra.hidden_field :file_cache %> 
          </label>
        <%= link_to(ra.object.file.url.to_s.split('/')[-1], ra.object.file.url) %>
        </div>
    </div>
<% end %>

我可以看到Upload Files按钮出现的原因。似乎我希望它超出嵌套表单的范围,但我不知道如何做到这一点。

我的目标是在为每个已经附加的文件提供链接后,将按钮放置一次。

任何帮助都会很棒,谢谢。

修改:其他代码,看看我们是否可以让它发挥作用。

<%= f.fields_for :request_attachments do |ra| %>
  <%= link_to(ra.object.file.url.to_s.split('/')[-1], ra.object.file.url) %>
<% end %>

<div class="row westmontTextMuseo3" id="uploader">
  <div class="col-xs-12">
    <label class="btn btn-info"> Upload Files
      <%= @request.request_attachments.file_field :request_attachment_file, :multiple => true, name: "request_attachments[file][]", :style => "display: none", type: "file" %>
      <%= @request.request_attachments.hidden_field :file_cache %> 
    </label>
  </div>
</div>

但是undefined method file_field' for #<RequestAttachment...

失败了

1 个答案:

答案 0 :(得分:1)

这似乎有效

<%= f.fields_for :request_attachments do |ra| %>
  <div class="row">
    <div class="col-xs-12">
      <%= link_to(ra.object.file.url.to_s.split('/')[-1], ra.object.file.url) %>
    </div>
  </div>
<% end %>

<div class="row westmontTextMuseo3" id="uploader">
  <div class="col-xs-12">
    <label class="btn btn-info"> Upload Files
      <%= file_field_tag :request_attachment_file, :multiple => true, name: "request_attachments[file][]", :style => "display: none", type: "file" %>
      <%= hidden_field_tag :file_cache %> 
    </label>
  </div>
</div>

我假设,因为属性是嵌套的,它不起作用,但确实有效。