2015-12-17 34 views
2

我有Paperclip附件管理器与MySQL数据库。如何安全地删除回形针attachmetns上的链接?

class Photo < ActiveRecord::Base 

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

end 

存储在Amazon S3中的图像。我需要从数据库中删除此图像上的链接,但图像必须保留在S3上。我如何做到这一点?

1)Photo.delete_all?

2)从ActiveAdmin中删除?

3)从mysql控制台中删除?

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

回答

2

你可以试着让FILE_URL空白,根本没有必要删除所有照片

Photo.update_all(file: nil) 
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