回形针在编辑页面上显示多个“缺失图像”标签

时间:2013-09-04 23:53:43

标签: ruby-on-rails file-upload paperclip

所以我有一个有多张照片的对象(通过使用一个名为asset的模型)。我正在使用回形针上传照片,而且工作正常。在我的节目页面上,我打电话给

<li class="grid_3">Photos:<br /></li>
<% @address.assets.each do |asset| %>
  <li class='grid_3'><%= image_tag(asset.photo.url, size: '100x100') %></li>
<% end %>

并且照片显示完美。当我点击编辑页面时:

<%= f.simple_fields_for :assets do |asset| %>
  <%= render :partial => 'asset_fields', :locals => { :f => asset } %>
<% end %>

渲染部分:

<div class='nested-fields'>
  <%= f.file_field :photo %>  
  <% unless f.object.new_record? %>
    <%= f.file_field :photo %>
    <% @address.assets.each do |asset| %>
      <li class='grid_3'><%= image_tag(asset.photo.url, size: '100x100')  %></li>
    <% end %>
  <% end %>
</div>
此时,每张照片都会显示3次,并附带一张带有“缺失”照片占位符的额外图片标记。我会说我尝试了不同的东西,但我只是没有看到代码有什么问题。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

假设simple_fields_for的行为与fields_for相同......对f.simple_fields_for :assets的调用已经是一个循环。它循环遍历f.object.assets并为使用asset表单生成器找到的每个项目呈现块的内容一次(调用该块变量asset_form可能会有点混乱)办法)。所以,既然你渲染了一部分也会渲染@address的所有资产,这就是为什么每次拍摄3张图像的原因。