删除paperclip目录:id_partition格式

时间:2011-03-14 02:32:17

标签: ruby-on-rails

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将是记录的id号。现在该目录包含原始图像,但它也包含缩略图。当我想删除记录时,原始文件被删除但目录仍然存在,因为缩略图仍然存在于目录中。如何完全删除目录?

1 个答案:

答案 0 :(得分:0)

您可以使用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

注册观察者