Ruby on rails 删除列时如何删除与列对应的图像

Ruby on rails 删除列时如何删除与列对应的图像,ruby-on-rails,ruby,carrierwave,Ruby On Rails,Ruby,Carrierwave,我在项目中使用rails 4.2.1、ruby 2.3.0p0和carrierwave0.11.0。目前我有一个带有图像列的模型产品。现在,我想为同一个产品保存多个图像。因此,我创建了一个新模型ProductImage并使用了以下代码 Product.all.each do |prdct| if prdct.image.present? @photo = prdct.product_images.create!(image: prdct.image) prdct.remove

我在项目中使用rails 4.2.1、ruby 2.3.0p0和carrierwave0.11.0。目前我有一个带有图像列的模型产品。现在,我想为同一个产品保存多个图像。因此,我创建了一个新模型ProductImage并使用了以下代码

Product.all.each do |prdct|
  if prdct.image.present?
    @photo = prdct.product_images.create!(image: prdct.image)
    prdct.remove_image!
  end
end
remove_column :products, :image
但不会删除保存在产品/图像文件夹中的图像。在prdct后在ProductImage model下移动图像后如何删除图像。删除图像!您必须保存prdct。保存对象以便将其删除

如果还想删除文件夹,则必须执行以下操作:

def remove_image_directory
 FileUtils.remove_dir("#{Rails.root}/path/to/folder/", force: true)
end
并在删除图像后调用此方法

从文档中:

也许是产品、图像、销毁?它起作用了。图像已删除,但文件夹未被删除。我们也可以删除文件夹吗?@CR7更新了我的答案。