Rails的回形针与模型关联(Rails Paperclip with model associat

2019-09-29 17:24发布

我有一个页面,我可以查看产品,并直接从该页面,用户可以添加和删除与该产品相关的多个图像。 我使用的形式回形针上传新文件。

因为多个图像可以被保存为一个产品我创建属于产品模型的图像的模型。 这是不可能使用,因为该协会的默认回形针文件输入。 下面我的解决办法是工作,但我不知道是否有在轨道更好的方式来做到这一点没有一切,我砍死,使其工作的HTML。

class Image < ActiveRecord::Base
belongs_to :product

class Product < ActiveRecord::Base
has_many :images, :dependent => :destroy accepts_nested_attributes_for :images, :allow_destroy => true

show.html.erb

<% @product.images.build %>
<%= form_for(@product, :html => { :multipart => true }) do |f| %>

<input id="image" name="product[images_attributes][<%= @product.images.count %>][photo]" >size="30" type="file" onchange="this.form.submit();" />

<% end %>

Answer 1:

正如你最有可能知道,在你的控制器就可以构建@ product.images.build一些空文件输入; 而在两个编辑视图,并创建你可以做这样的事情:

<% f.fields_for :images do |img| %>

  <% if img.object.data_file_name %>
    <%= image_tag img.object.data.url(:thumb) %>
    <%= link_to 'Delete', img.object, {:method => :delete, :confirm => 'Are you sure?'} %>
  <% else %>
    <%= img.file_field :data %>
  <% end %>

<% end %>

这个特殊的例子,需要有破坏作用的图像控制器,但它应该工作得相当好,即使图像是多态的。



文章来源: Rails Paperclip with model association