3

我最近了解到,我不能在 ruby​​ on rails 中使用单个 HTTP 请求下载超过 1 个文件,除非我使用 AJAX 请求。我现在正试图弄清楚如何做到这一点。

(我在 RAils 3 上使用 Prawn 作为 PDF 创建者)我的控制器中有一个操作可以呈现 PDF 并使用 send_data

def download_quote          
pdf = QuotesPdf.new(params)
send_data pdf.render, filename: "foo.pdf",
                    type: "application/pdf",
                    disposition: "download"
end

然后我的 HTML 视图中有一个按钮,其中包含此工作 Jscript 代码

// AJAX, download
function ajaxRequest(){
    $.ajax({
      type: 'POST',
      url: '/download_quote/126',
      success: function(data){
        alert(data);
      }
    });
    return false;
  }

  $("#mydownload").click(ajaxRequest);

当我在渲染 PDF 几秒钟后单击“#mydownload”时,我收到一个成功的警报框,里面包含所有 PDF 文件的内部数据。

问题是:如何将数据转换为 pdf 文件并自动下载?

4

1 回答 1

2

我不认为“下载”是一种有效的内容处置类型。尝试改用“附件”。

内容处置

def download_quote          
    pdf = QuotesPdf.new(params)
    send_data pdf.render, filename: "foo.pdf",
        type: "application/pdf",
        disposition: "attachment"
end
于 2012-10-26T12:52:15.363 回答