Ich sehe standardmäßig carrierwave löscht keine Dateien mit Modell verknüpft. Wie geht das?Wie lösche Modell mit verknüpfter Datei
Antwort
Carrierwave sollte die Dateien von S3 automatisch für Sie entfernen. Ich habe das gerade in einer Rails 3.1 App getestet.
Ich bin nicht vertraut mit Carrierwave, aber im Allgemeinen ist das Einhängen in die after_destroy
wahrscheinlich, was Sie wollen.
class Model < ActiveRecord::Base
after_destroy :delete_linked_file
def delete_linked_file
# Delete the linked file here
end
end
Sieht aus wie Carrierwave sollte es selbst behandeln. https://groups.google.com/forum/?fromgroups#!topic/carrierwave/KUyXuQdYcFw. Aber ich habe das gleiche Problem auch = (( –
Sie benötigen
@image.destroy
nicht
@image.delete
Auch Refresh-Button s3 auf aws Panel verwenden, um rufen
Ja, Sie es tun können, wie diese
def delete_image_folder
FileUtils.remove_dir(File.join(Rails.root, File.join('public' , file_name.store_dir)), :force => true)
end
bu Denken Sie daran, dass wenn Sie das Carrierwave-Konfigurations-Root geändert haben, sollten Sie es berücksichtigen (Standard ist öffentlich, so dass dieser Code funktioniert)
) Es sieht aus wie Carrierwave die Datei entfernt, aber leere Verzeichnisse nicht entfernt. Ich hätte mit Büroklammer stecken sollen. – jspooner