我试图用这样的Proc对象定义Paperclip的preserve_files选项:
class Image < ActiveRecord::Base
has_attached_file :asset, styles: {
thumb: "100x100#"
},
preserve_files: Proc.new { |image| Image.where(asset_fingerprint: image.asset_fingerprint).where.not(id: image.id).any? ? true : false }
end
但它的行为就像它总是“真实”一样。 有没有办法正确定义?
重点是具有相同指纹的文件只保存在存储器上一次,但如果另一个保存的Image对象正在使用它,则无法删除文件本身。
答案 0 :(得分:0)
preserve_files
选项定义在删除文件所属的对象时是保存还是删除文件。
这样可以防止在模型中消除
some_attachment
被破坏,因此当对象恢复时它仍然存在 后面。
您描述的功能(上传到多个对象时仅保存图像一次)非常有趣,但回形针中不包含此内容。