如何安全地删除回形针附件上的链接?

时间:2015-12-17 06:17:37

标签: ruby-on-rails activerecord paperclip

我有使用mysql数据库的Paperclip附件管理器。

$id = searchAppID('263920 ', $r);

存储在Amazon S3中的图像。我需要从数据库中删除此图像上的链接,但图像必须保留在S3上。我怎么能这样做?

1)Photo.delete_all?

2)从ActiveAdmin删除?

3)从mysql控制台删除?

4)另一种方法......?

2 个答案:

答案 0 :(得分:2)

您可以尝试将file_url设为空白,无需删除所有照片

Photo.update_all(file: nil)

答案 1 :(得分:2)

  

keep_old_files

     

清除或更新附件时,不会自动删除现有附件文件(原件+调整大小)。默认为false。

所以也许你可以使用:

#app/models/photo.rb
class Photo < ActiveRecord::Base

    has_attached_file :file,
      styles: {:large => "800x600>"},
      default_url: "/images/:style/missing.png",
      keep_old_files: true

end

......甚至更好:

  

preserve_files

     

在所有情况下都保留现有附件文件,即使父记录已被销毁。

#app/models/photo.rb
class Photo < ActiveRecord::Base

    has_attached_file :file,
      styles: {:large => "800x600>"},
      default_url: "/images/:style/missing.png",
      preserve_files: true

end