rails send_data仅适用于'内联'而非下载

时间:2016-11-10 22:57:11

标签: ruby-on-rails

在控制器中我有:

send_data(data,  filename: "payment_file")

在视图中我有:

<%= link_to 'Download File', bank_file_download_path(@bank_file_job),
    data: {no_turbolink: true}, class: "btn btn-primary btn-lg btn-block" %>

但它始终显示内联文件的内容。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:5)

我想出来了。正如another answer已经指出的那样,需要禁用turbolinks。但该答案中建议的解决方案不起作用,因为在特定页面上禁用它的语法已从turbolinks 5.0开始改变。它应该是这样的。

<%= link_to 'Download File', file_download_path , data: {turbolinks: false}   %>

答案 1 :(得分:0)

根据文档,如果您希望下载,则需要设置:disposition下载

例如

send_data data, filename: "payment_file", disposition: 'download' 

http://apidock.com/rails/ActionController/DataStreaming/send_data

答案 2 :(得分:0)

别忘了在文件名中添加格式,例如,文件名应以.pdf结尾,以便浏览器知道该怎么做

相关问题