1

使用 refile gem,我想为多个上传保存文件名。我在这里的 github 上打开了一个问题,但也想联系 SO。实际上这里也注意到了。

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

A :story accepts_attachments_for :documents,我的元数据设置正确Documents班级正确设置了元数据。

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

我从哪说起呢?

资源:

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"]
4

1 回答 1

1

根据重新归档文档,元数据存储在您设置的对象/模型上attachment。在你的情况下,Attachment模型。它还期望存在某些列以存储元数据。根据您的attachment型号:

class Attachment < ApplicationRecord
  attachment :file
end

然后,您必须在表中包含以下列attachments

file_filename
file_size
file_content_type

如果将这些列添加到attachments表中,则将存储文件的元数据。

于 2016-09-06T05:29:20.823 回答