Rails Paperclip与模型关联

我有一个页面,我可以在其中查看产品,并且可以直接从该页面添加和删除与产品关联的多个图像。 我在表单中使用paperclip来上传新文件。

因为可以为产品保存多个图像,所以我创建了属于产品模型的图像模型。 由于关联,无法使用默认回形针文件输入。 下面我的解决方案正在运行,但我想知道是否有更好的方法在rails中完成此操作而没有我所黑的所有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


{ :multipart => true }) do |f| %>

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

您很可能知道,在您的控制器中,您可以使用@ 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 %> 

这个特殊的例子需要一个带有破坏动作的图像控制器,但即使图像是多态的,它也应该能很好地工作。