Rails: 重新归档以下载文件

Rails: Refile for documents to download

使用 refile gem,我上传了文档(.pdf、.docx、.pptx 等)。上传没问题。当我使用 attachemnt_url 时,它会生成类似于 /attachments/...234jksdf2.../document 的内容。当我单击 link_to 时,它会下载没有扩展名的文档。

是什么让它以这种方式运行?如何恢复我的文件类型完整性?

我试图解决完全相同的问题,这是我尝试过的一种方法:

Refile 允许您保存其他元数据,例如 content_typehttps://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