2017-12-11 13 views
0

私のプロジェクトでは、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

おそらく 'product.image.destroy'? –

答えて

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

+0

それは働いた。画像は削除されますが、フォルダは削除されません。フォルダも削除できますか? – CR7

+0

@ CR7私の答えが更新されました。 – jemonsanto

関連する問題