使用refile gem,我想保存多个上传的文件名。我在github here上打开了一个问题,但也希望与SO联系。它实际上也注明了here on SO。
在自述文件之后,我已经应用了正确的strong_params,我可以看到它们在日志中被允许,但是不写入db。
:story
accepts_attachments_for :documents
,我为Documents
课程设置了正确的元数据。
当我提交时,没有任何内容被拒绝 - 我可以在日志中看到params被接受,但元数据(文件名等)未保存。
我从哪里开始?
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
My Attachment.rb专栏:
=> ["id",
"attachment_filename",
"knowledge_id",
"attachment_size",
"content_type",
"created_at",
"updated_at",
"file_id"]
答案 0 :(得分:1)
根据refile documentation,元数据存储在您已设置为attachment
的对象/模型中。在您的情况下,Attachment
模型。它还希望存在某些列以存储元数据。基于您的attachment
模型:
class Attachment < ApplicationRecord
attachment :file
end
然后,您必须在attachments
表格中显示以下列:
file_filename
file_size
file_content_type
如果将这些列添加到attachments
表中,则会存储该文件的元数据。