Rails - 使用雾/ Carrierwave下载S3文件的问题

问题描述:

我有一个Rails应用程序,我在S3上使用雾/ Carrierwave存储文件。当我去下载文件时,我没有得到预期的结果。我的代码如下:Rails - 使用雾/ Carrierwave下载S3文件的问题

v_file_name = "https://s3.amazonaws.com/{bucket}/{file}.pdf" 

data = open(URI.parse(URI.encode(v_file_name))) 

send_data data, :type => 'application/pdf', :disposition => 'attachment', :filename => "{filename}.pdf" 

我期望得到的下载文件对话框,但我重定向在浏览器中,与开头的页面:

%PDF-1.3 %���� 1 0 obj << /Creator /Producer >> endobj 2 0 obj.... 

而且在结尾:

..... << /Size 10 /Root 2 0 R /Info 1 0 R >> startxref 25361 %%EOF 

此代码以前一直在工作,但突然停止工作。

任何帮助将不胜感激!

发现错误。问题在于我已经实施了Turbolinks中期项目。显然Turbolinks打破send_data在Rails send_file &。您可以通过向链接添加“data-turbolinks ='false'”来禁用Turbolinks。这固定它!