リンクされたファイルでモデルを削除する方法
-
11-10-2019 - |
質問
デフォルトでは、CarrierWaveはモデルにリンクされたファイルを削除していないことがわかります。どうやってするの?
解決
CarrierWaveは、S3からファイルを自動的に削除する必要があります。 Rails 3.1アプリでこれをテストしました。
他のヒント
あなたは電話する必要があります
@image.destroy
いいえ
@image.delete
また、AWS S3パネルの更新ボタンを使用します
私はCarrierWaveに精通していませんが、一般的に、 after_destroy
おそらくあなたが望むものです。
class Model < ActiveRecord::Base
after_destroy :delete_linked_file
def delete_linked_file
# Delete the linked file here
end
end
はい、あなたはこのようにそれをすることができます
def delete_image_folder
FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)
end
ただし、CarrierWave構成ルートを変更した場合は、それを考慮に入れる必要があることを覚えておいてください(デフォルトは公開されているため、このコードは機能します)
所属していません StackOverflow