0

我安装了 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 新手,因此不胜感激。

谢谢大家!

4

1 回答 1

1

如果你试试这个:

<%= image_tag(attachment_form.object.file_url) if attachment_form.object.file? %>

您将能够显示以前上传的图像。但是如果你想立即显示上传,你需要使用别的东西。例如:https ://github.com/blueimp/jQuery-File-Upload/wiki/jQuery-File-Upload-v4-for-Rails-3 对不起,如果我误解了你的问题。

于 2012-05-03T05:46:59.530 回答