удалить каталог скрепки в формате: id_partition - PullRequest
0 голосов
/ 14 марта 2011
has_attached_file :asset,
:path => ":rails_root/public/system/:class/:id_partition/:style/:basename.:extension", 
:url => "/system/:class/:id_partition/:style/:basename.:extension"

У меня есть код выше в моей модели.Это делает путь как / public / system / uploads / 000/000/001, где 1 будет идентификатором записи.Теперь каталог содержит оригинальное изображение, но также и миниатюру.Когда я хочу удалить запись, исходный файл удаляется, но каталог остается, так как миниатюра все еще существует в каталоге.Как мне полностью удалить каталог?

1 Ответ

0 голосов
/ 08 августа 2011

Вы можете создать наблюдателя с помощью rails g observer Upload и сделать его похожим на

class UploadObserver < ActiveRecord::Observer
  observe Upload

  def before_destroy(record)
    FileUtils.rm_rf File.dirname(Upload.find(record).upload.path)
  end
end

и не забудьте зарегистрировать наблюдателя в application.rb с помощью config.active_record.observers = :upload_observer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...