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

发布于 2024-10-12 12:47:34 字数 47 浏览 2 评论 0原文

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

I see by default carrierwave does not delete files linked to model.
How to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

看春风乍起 2024-10-19 12:47:34

Carrierwave 会自动为您从 S3 中删除文件。我刚刚在 Rails 3.1 应用程序上对此进行了测试。

Carrierwave should remove the files from S3 automatically for you. I just tested this out on a Rails 3.1 app.

生来就爱笑 2024-10-19 12:47:34

您需要调用

@image.destroy

not

@image.delete

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

You need to call

@image.destroy

not

@image.delete

Also use refresh button on aws s3 panel

绮筵 2024-10-19 12:47:34

我对 Carrierwave 不熟悉,但一般来说,挂接到 after_destroy 可能就是您想要的。

class Model < ActiveRecord::Base
  after_destroy :delete_linked_file

  def delete_linked_file
    # Delete the linked file here
  end
end

I'm not familiar with carrierwave, but in general, hooking into the after_destroy is likely what you want.

class Model < ActiveRecord::Base
  after_destroy :delete_linked_file

  def delete_linked_file
    # Delete the linked file here
  end
end
初见终念 2024-10-19 12:47:34

是的,
您可以这样做

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

,但请记住,如果您更改了 Carrierwave 配置根,则应该考虑到它(默认是公共的,因此此代码将起作用)

Yes,
You can do it like this

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

but just remember that if you changed the Carrierwave configuration root, you should take it into account (default is public so this code will work)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文