Como modelo de borrado con archivo vinculado
-
11-10-2019 - |
Pregunta
veo por carrierwave por defecto no borrar archivos vinculados al modelo. ¿Cómo hacerlo?
Solución
Carrierwave debe eliminar los archivos desde S3 automáticamente. Acabo de probar esto en una aplicación Rails 3.1.
Otros consejos
Es necesario llamar
@image.destroy
no
@image.delete
También utilice el botón de actualización en el panel de AWS S3
No estoy familiarizado con carrierwave, pero en general, enganchando en el after_destroy
es probable que lo que desea.
class Model < ActiveRecord::Base
after_destroy :delete_linked_file
def delete_linked_file
# Delete the linked file here
end
end
Sí, Puede hacerlo de esta manera
def delete_image_folder
FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)
end
Pero recuerda que si ha cambiado la configuración de la raíz Carrierwave, usted debe tomar en cuenta (por defecto es público por lo que este código funcionará)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow