重新归档+ S3:删除附件并保留数据库记录

时间:2019-04-22 11:08:33

标签: ruby-on-rails ruby amazon-s3

我正在使用refile gem将文件上传到S3,并且具有以下模型

class DataFile < ActiveRecord::Base
  attachment :document, destroy: true
end

数据库中的相应表具有列document_filenamedocument_id来保存文件元数据。

我需要从S3中删除文件,并将相应的行保留在数据库中(我需要该行才能显示该文件的名称和删除日期)。

我正在尝试

data_file.document = nil
data_file.save()

但这会删除文件名。是否有解决方案可以从S3中删除文件并保持document_filename的值。

1 个答案:

答案 0 :(得分:1)

我将在各自的模型中定义2个新列,并复制数据以在删除后保留在那里。

与保留格式错误的refile对象相比,这种方法更加一致:

data_file.update_attributes!(
  file_name: data_file.document.filename,
  removed_at: DateTime.now,
  document: nil)