重新归档多个附件的元数据

Refile Metadata for Multiple Attachments

使用 refile gem,我想保存多个上传的文件名。我也在 github here, but want to reach out to SO also. It's actually noted here on SO 上开了一个问题。

根据自述文件,我应用了正确的 strong_params,我可以看到它们在日志中是允许的,但不要写入数据库。

A :story accepts_attachments_for :documents,并且我为 Documents class.

正确设置了元数据

当我提交时,没有任何东西被拒绝——我可以在日志中看到参数被接受,但元数据(文件名等)没有被保存。

我从哪里开始?

来源:

class Attachment < ApplicationRecord
  attachment :file
end

class Problem < ApplicationRecord
  has_many :attachments, dependent: :destroy
  accepts_attachments_for :attachments, append: true, attachment: :file
end

和控制器参数:

def mp_problem_params
  params.require(:problem).permit(:title, attachments_files: [])
end

我的 Attachment.rb 列:

=> ["id",
 "attachment_filename",
 "knowledge_id",
 "attachment_size",
 "content_type",
 "created_at",
 "updated_at",
 "file_id"]

基于 refile documentation,元数据存储在您已设置为 attachment 的 object/model 上。在您的情况下,Attachment 模型。它还期望存在某些列以存储元数据。根据您的 attachment 模型:

class Attachment < ApplicationRecord
  attachment :file
end

然后您必须在 attachments table 中出现以下列:

file_filename
file_size
file_content_type

如果您将这些列添加到 attachments table,那么文件的元数据将被存储。