【发布时间】:2017-02-21 18:55:16
【问题描述】:
我的_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...
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。那么 - 你有什么努力使这项工作?您是否尝试过将字段移动到您期望的位置?然后发生了什么?
-
我尝试了
if语句来查看ra.object.file是否存在,但这将显示链接,而不是按钮。我尝试使用@requests.request_attachments.all.each do |x| ...将link_to 对象移到外部,但随后每个文件的按钮仍会出现多次。和...感谢您的欢迎.... 在这里已经 2 年多了,但欢迎总是很好 -
:D 我的“欢迎”基于一个人有多少分——通常我猜对了,但有时我猜错了;)不过——我很高兴它让你开心!
-
是的,如果您将每个附件放在任何类型的循环中(无论是
each还是fields_for),您将继续为每个附件获取一个字段 - 如果您只想要一个。 ..那么它需要在循环之外。您能否向我们展示您尝试过的仅显示链接的其他代码的示例?也许我们可以找到一种方法来实现这一目标。 -
我想我刚刚想通了。通过将
@request.....替换为file_field_tag和hidden_field_tag... 我认为这是行不通的,因为它是一个嵌套属性,但由于它只依赖于参数,所以它似乎起作用了。
标签: ruby-on-rails twitter-bootstrap file-upload