Rails + Paperclip - 更新/编辑多个图像

时间:2015-09-07 14:31:08

标签: ruby-on-rails image paperclip

我正在构建一个用于存储产品的Rails应用程序,因此产品具有多种图像。创建新记录时,我最多可以上传4张图片,这是产品控制器中的新操作

def new
    @product = Product.new
    4.times { @product.images.build }
end

这就是观点:

<%= form_for @product, :html => {:multipart => true} do |f| %>
    .
    .
    .
    .    
    <%= f.fields_for :images do |builder| %>

        <% if builder.object.new_record? %>
        <p>
            <%= builder.label :image, "Image File" %>
            <%= builder.file_field :image %>
        </p>

        <% end %>

    <% end %>
<% end %>

在产品模型中,我允许嵌套属性:

accepts_nested_attributes_for :images, :reject_if => lambda { |t| t['image'].nil? }

到目前为止一切都很好。我的问题是:如何更新属于产品的图像?例如:如果用户创建包含2或3个图像的新记录,则用户应该能够编辑产品说明及其图像。到目前为止,我的编辑操作是这样定义的:

def edit
    @product = Product.find(params[:id])
end

def update
    @product = Product.find(params[:id])
    if @product.update(product_params)
       redirect_to :root
    else
       render 'edit'
    end
end

我正在使用Paperclip上传图片。我尝试做了与 New Action 相同的事情,但是不是更新图像,而是上传了新的图像。

编辑:

product_params:

  def product_params
      params.require(:product).permit(:title, :info_item, :description, :price, :subcategory_id, :category_id, :images_attributes => [:image])
 end

0 个答案:

没有答案