我安装了 CarrierWave (0.6.1) 和 Nested Form gem。我有一个带有许多附件的资源模型,这些附件有一个 FileUploader。
我有一个嵌套表单,用户可以使用一个资源上传多个文件。我正在关注 github (https://github.com/jnicklas/carrierwave) 上的部分,该部分说如何使上传工作跨重新显示不幸的是它仅适用于 1:1 的比例。
这是我的代码:
<%= nested_form_for @resource, :html=>{:multipart => true } do |f| %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<%= f.fields_for :attachments, @attachment do |attachment_form| %>
<p>
<%= attachment_form.label :file %>
<%= attachment_form.file_field :file %>
<%= attachment_form.hidden_field :file_cache %>
<%= image_tag(attachment_form.file_url) if attachment_form.file? # DOESN'T WORK!!! %>
</p>
<%= attachment_form.link_to_remove "Remove this attachment" %>
<% end %>
<%= f.link_to_add "Add attachment", :attachments %>
<p><%= f.submit %></p>
<% end %>
一切正常,它为 attachment_form 填充了 file_cache 变量,但是我需要在其中添加以下行以向用户显示文档的图像:
<%= image_tag(attachment_form.file_url) if attachment_form.file? %>
然而,这有很多问题。首先 attachment_form 是引用 form_builder 而我想要实际的附件。其次,附件对文件一无所知。
可能需要使用另一种类型的循环机制,但我是 Ruby 新手,因此不胜感激。
谢谢大家!