我在我的项目中使用rails 4.2.1,ruby 2.3.0p0和carrierwave(0.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
但是产品/图像文件夹中保存的图像不会被删除。如何在ProductImage模型
下移动图像后删除图像答案 0 :(得分:1)
在prdct.remove_image!
之后,您必须保存(prdct.save
)对象,以便将其删除。
如果您想删除该文件夹,您还必须执行以下操作:
def remove_image_directory
FileUtils.remove_dir("#{Rails.root}/path/to/folder/", force: true)
end
删除图像后调用此方法。
来自文档: https://github.com/carrierwaveuploader/carrierwave#removing-uploaded-files