Как удалить модель с связанным файлом
-
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