Ruby on Rails: 大虾Gem生成PDF,但是PDF无法显示

Ruby on Rails: Prawn Gem Generates PDF, but PDF Cannot Display

我一直在 Rails(版本 5.2.1)上使用 Ruby 和 RubyMine IDE 进行项目,我正处于开发阶段我想创建一些基于 PDF 的报告。为此,我抓到了大虾(2.2.2版)gem。我设置了一个从页面下载 PDF 的按钮:

<%= button_to "Download", action: :download_report %>

它被路由到适当的控制器:

get 'pages#download_report' => 'pages#report_page'
post 'pages#download_report', action: :download_report, controller: 'pages'

并且在页面控制器中,download_report 方法是:

def download_report
    Prawn::Document.generate("hello.pdf") do
        text "Hello World!"
    end
    send_data("hello.pdf", filename: "hello.pdf", type: 'application/pdf')
end

服务器在开发中运行良好,使用按钮没有错误。发送了一个 PDF,我可以 "open" 它,但是 PDF 无法加载并且无法在我尝试过的任何 PDF reader 中打开,包括 Microsoft Edge 和 Adob​​e Acrobat Reader。我对为什么会发生这个错误感到困惑,因为这个基本测试似乎应该有效。我对 Rails 上的 Ruby 还比较陌生,所以如果这是一个基本错误,我不会感到惊讶,但它不是我很容易看到的错误。感谢任何帮助或建议。

感谢任何提前回复的人!如果您希望我提供更多信息以帮助诊断问题,请告诉我。

我在我的项目中经常使用 prawn,这是我遵循的配置。到目前为止还没有遇到任何问题。

send_data your_file.render, filename: filename, type: "application/pdf"

send_data 更改为 send_file

 def download_report
    Prawn::Document.generate("hello.pdf") do
      text "Hello World!"
    end
    send_file "hello.pdf",type: 'application/pdf'
end