Rails 5 - 下载文件后重定向或呈现

时间:2017-10-26 23:08:29

标签: ruby-on-rails pdf

快速摘要 - 使用wicked_pdf gem生成PDF。生成PDF后,我想重定向到另一个页面。

我的代码

def show
 @form = Form.find(params[:id])
  respond_to do |format|
    format.html
    format.pdf do
      render pdf: "MyFile",
        template: 'forms/show.html.erb',
        disposition: 'attachment',
        locals: { f: @f },
        layout: 'pdf.html'
    end
  end
end

问题 - 下载PDF后,我无法重定向到某个操作或呈现一个视图。

由于每个请求只能有一个HTTP响应,重定向呈现的另一种方法是什么?

1 个答案:

答案 0 :(得分:0)

一个hacky解决方案可能是在“Download pdf”锚标记上有一个onclick事件。在将用户带到另一个页面之前,javascript可以等待几秒钟(以下示例中为3)

setTimeout(function(){ window.location.href = "http://example.com/new_url" }, 3000);

Anchor event-propagation将立即开始pdf下载,浏览器将在3秒内加载new_url。