ruby-on-rails – 如何在通过rails控制器检索的浏览器中呈现PDF

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在通过rails控制器检索的浏览器中呈现PDF前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用 Recurly的rails应用程序.我正在尝试下载PDF并在浏览器中呈现它.我目前有一个链接
  1. link_to 'Download',get_invoice_path(:number => invoice.invoice_number)

关联的控制器具有get_invoice方法,如下所示:

  1. def get_invoice
  2. begin
  3. @pdf = Recurly::Invoice.find(params[:number],:format => 'pdf')
  4. rescue Recurly::Resource::NotFound => e
  5. flash[:error] = 'Invoice not found.'
  6. end
  7. end

当我点击链接时,我得到了在我的控制台中以二进制形式呈现的PDF.如何在浏览器中渲染PDF?

解决方法

假设PDF保存在内存中,请使用 send_data在浏览器中发回数据流.
  1. def get_invoice
  2. @pdf = Recurly::Invoice.find(params[:number],:format => 'pdf')
  3. send_data @pdf,filename: "#{params[:number]}.pdf",type: :pdf
  4. end

如果文件存储在某处(但似乎不是这种情况),请使用send_file.

猜你在找的Ruby相关文章