我正在使用refile
gem将文件上传到S3
,并且具有以下模型
class DataFile < ActiveRecord::Base
attachment :document, destroy: true
end
数据库中的相应表具有列document_filename
和document_id
来保存文件元数据。
我需要从S3
中删除文件,并将相应的行保留在数据库中(我需要该行才能显示该文件的名称和删除日期)。
我正在尝试
data_file.document = nil
data_file.save()
但这会删除文件名。是否有解决方案可以从S3中删除文件并保持document_filename
的值。
答案 0 :(得分:1)
我将在各自的模型中定义2个新列,并复制数据以在删除后保留在那里。
与保留格式错误的refile
对象相比,这种方法更加一致:
data_file.update_attributes!(
file_name: data_file.document.filename,
removed_at: DateTime.now,
document: nil)