使用refile
gem,我上传了文档(.pdf、.docx、.pptx 等)。上传就好了。当我使用attachemnt_url
时,它会产生类似/attachments/...234jksdf2.../document
. 当我单击 时link_to
,它会下载没有扩展名的文档。
发生了什么让它以这种方式运行?如何恢复我的文件类型健全性?
使用refile
gem,我上传了文档(.pdf、.docx、.pptx 等)。上传就好了。当我使用attachemnt_url
时,它会产生类似/attachments/...234jksdf2.../document
. 当我单击 时link_to
,它会下载没有扩展名的文档。
发生了什么让它以这种方式运行?如何恢复我的文件类型健全性?
我试图解决完全相同的问题,这是我尝试过的一种方法:
Refile 允许您保存其他元数据,例如content_type
:https ://github.com/refile/refile#additional-metadata 。生成的文件内容类型将保存为类似"image/png"
或"application/pdf"
.
然后我们可以应用类似的东西
link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
凭什么
in document.rb
def file_extension
file_content_type.split("/").last.to_sym
end
唯一的问题是这不会自动下载文件,而是在新页面中打开它,然后您可以在其中下载文件。还在寻找更好的选择!
这最终成为我的正确解决方案。
link_to "Download file", attachment_url(@document, :file, format: @document.file_extension)
def file_extension
require 'rack/mime'
Rack::Mime::MIME_TYPES.invert[document_content_type].split('.').last
end