2017-12-11 2 views
0

내 프로젝트에서 rails 4.2.1, ruby ​​2.3.0p0 및 carrierwave (0.11.0)를 사용하고 있습니다. Currrently 나는 Image 컬럼이있는 모델 제품을 가지고 있습니다. 이제 동일한 제품에 대해 여러 이미지를 저장하고 싶습니다. 그래서 새로운 모델 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

관련 문제