Как удалить модель со связанным файлом - PullRequest
3 голосов
/ 17 января 2011

Я вижу, что по умолчанию carrierwave не удаляет файлы, связанные с моделью.Как это сделать?

Ответы [ 4 ]

2 голосов
/ 12 сентября 2011

Carrierwave должен автоматически удалить файлы из S3.Я только что проверил это в приложении Rails 3.1.

1 голос
/ 02 декабря 2011

Вам нужно позвонить

@image.destroy

не

@image.delete

Также используйте кнопку обновления на панели aws s3

0 голосов
/ 03 июля 2013

Да, Вы можете сделать это так

def delete_image_folder
    FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)  
end

, но помните, что если вы изменили корень конфигурации Carrierwave, вы должны принять это во внимание (по умолчанию public, поэтому этот код будет работать)

0 голосов
/ 17 января 2011

Я не знаком с carrierwave, но в общем, подключение к after_destroy, скорее всего, то, что вы хотите.

class Model < ActiveRecord::Base
  after_destroy :delete_linked_file

  def delete_linked_file
    # Delete the linked file here
  end
end
...