【问题标题】:Generate pdf in the background with Prawn PDF and Resque使用 Prawn PDF 和 Resque 在后台生成 pdf
【发布时间】:2015-04-30 01:40:46
【问题描述】:

我正在尝试使用 Prawn PDF 和 Resque 与后台工作人员一起生成 PDF

没有后台工作者的代码是:

def document
    respond_to do |format|
        format.pdf do
            pdf = ReservationPdf.new(params[:reservation_ids])
            send_data pdf.render, filename: 'reservations.pdf', type: 'application/pdf', disposition: 'inline', compress: true
        end
    end
end

我尝试将以下行移至 app/jobs/ 中的 pdf.rb 以供 Resque 处理

pdf = ReservationPdf.new(params[:reservation_ids])
send_data pdf.render, filename: 'reservations.pdf', type: 'application/pdf', disposition: 'inline', compress: true

这似乎不能正常工作 - 我得到'未定义的方法“send_data”'

有谁知道如何解决这个问题?

【问题讨论】:

    标签: ruby backgroundworker resque prawn


    【解决方案1】:

    如果我没记错的话,您的 document 方法是控制器操作,对吧?所以它属于一个控制器。

    当你调用一个动作时,应该向请求者返回一些东西,在这种情况下是send_data

    如果您尝试在后台生成 pdf,那么您应该更改响应,可能类似于 head :ok 或只是告诉用户等待 pdf 的视图。

    下一步是在后台生成pdf,你可以以这个帖子为例:generating pdf using prawn in background with resque

    然后您需要与用户通信 pdf 已准备好,一个选项是发送电子邮件,另一个选项是刷新页面直到 pdf 出现,另一个选项是服务器向浏览器推送通知以获取 pdf .

    【讨论】:

      猜你喜欢
      • 2010-11-18
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多