Comment Supprimer le modèle avec le fichier lié
-
11-10-2019 - |
Question
Je vois par carrierwave par défaut ne pas supprimer les fichiers liés au modèle. Comment le faire?
La solution
Carrierwave devrait supprimer les fichiers de S3 automatiquement pour vous. Je viens de tester cela sur une application Rails 3.1.
Autres conseils
Vous devez appeler
@image.destroy
pas
@image.delete
Utilisez également le bouton de rafraîchissement sur le panneau de aws
Je ne suis pas familier avec carrierwave, mais en général, l'accrochage dans le after_destroy
est probablement ce que vous voulez.
class Model < ActiveRecord::Base
after_destroy :delete_linked_file
def delete_linked_file
# Delete the linked file here
end
end
Oui, Vous pouvez le faire comme ceci
def delete_image_folder
FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)
end
mais rappelez-vous juste que si vous avez changé la racine de configuration Carrierwave, vous devez prendre en compte (par défaut est public si ce code fonctionne)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow