Come modello di eliminazione con il file collegato
-
11-10-2019 - |
Domanda
vedo da carrierwave default non fa eliminare i file legati al modello. Come fare?
Soluzione
Carrierwave dovrebbe rimuovere i file da S3 automaticamente per voi. Ho appena testato questo fuori su un'applicazione Rails 3.1.
Altri suggerimenti
È necessario chiamare
@image.destroy
non
@image.delete
Inoltre, utilizzare il pulsante di aggiornamento del pannello AWS S3
Non ho familiarità con carrierwave, ma in generale, agganciando nella after_destroy
è probabile che ciò che si desidera.
class Model < ActiveRecord::Base
after_destroy :delete_linked_file
def delete_linked_file
# Delete the linked file here
end
end
Si, Si può fare in questo modo
def delete_image_folder
FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)
end
ma solo ricordare che se è stata modificata la configurazione di radice Carrierwave, si dovrebbe prendere in considerazione (il valore predefinito è pubblico in modo tale codice funziona)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow