Dam*_*che 5 ruby-on-rails ruby-on-rails-3 carrierwave
我有一个上传器,允许您上传文件.我想要做的是在您查看其show动作时触发文档的下载.网址将是这样的:
/documents/16
Run Code Online (Sandbox Code Playgroud)
该文档可以是.txt或.doc.
到目前为止,我的show动作看起来像这样:
def show
@document = Document.find(params[:id])
respond_with(@document) do |format|
format.html do
render layout: false, text: @document.name
end
end
end
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
Mik*_*Mik 12
看一下send_data方法:
将给定的二进制数据发送到浏览器.此方法类似于render:text => data,但也允许您指定浏览器是否应将响应显示为文件附件(即在下载对话框中)或内联数据.您还可以设置内容类型,表观文件名和其他内容.
所以,我认为在你的情况下它应该是这样的:
def show
@document = Document.find(params[:id])
send_data @document.file.read, filename: @document.name
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6170 次 |
最近记录: |