Ruby on rails 如何删除带有链接文件的模型

Ruby on rails 如何删除带有链接文件的模型,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我看到默认情况下carrierwave不会删除链接到模型的文件。 怎么做?我对carrierwave不太熟悉,但一般来说,在销毁后挂入,可能就是你想要的 class Model < ActiveRecord::Base after_destroy :delete_linked_file def delete_linked_file # Delete the linked file here end end 类模型

我看到默认情况下carrierwave不会删除链接到模型的文件。
怎么做?

我对carrierwave不太熟悉,但一般来说,在销毁后挂入
,可能就是你想要的

class Model < ActiveRecord::Base
  after_destroy :delete_linked_file

 def delete_linked_file
    # Delete the linked file here
  end
end
类模型结束
Carrierwave应该为您自动从S3中删除文件。我刚刚在Rails 3.1应用程序上测试了这一点。

您需要调用

@image.destroy
不是

同时使用aws s3面板上的刷新按钮

是, 你可以这样做

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

但请记住,如果您更改了Carrierwave配置根目录,则应将其考虑在内(默认值为public,因此此代码将正常工作)

看起来Carrierwave应该自行处理。但是我也有同样的问题=((看起来Carrier删除了文件,但没有删除空目录。我应该用回形针。
def delete_image_folder
    FileUtils.remove_dir(File.join(Rails.root, File.join( 'public' , file_name.store_dir)), :force => true)  
end