gpt4 book ai didi

ruby-on-rails - 在resque的背景下使用 Prawn 生成pdf

转载 作者:行者123 更新时间:2023-12-04 06:35:00 25 4
gpt4 key购买 nike

我正在尝试通过 Resque 后台作业在后台创建 PDF 文档。

我创建 PDF 的代码位于我想在 Resque 工作人员中使用的 Rails 辅助方法中,例如:

class DocumentCreator
@queue = :document_creator_queue
require "prawn"

def self.perform(id)
@doc = Document.find(id)

Prawn::Document.generate('test.pdf') do |pdf|
include ActionView::Helpers::DocumentHelper
create_pdf(pdf)
end
end
end
create_pdf方法来自 DocumentHelper但我收到此错误:
undefined method `create_pdf' 

有人知道怎么做吗?

最佳答案

您正在尝试从类方法 ( create_pdf ) 调用实例方法 ( self.perform )。只有当您的 DocumentHelper 时,您的代码才有效。定义 create_pdf作为类方法:

def self.create_pdf

如果您不需要访问 create_pdf在您看来,您可以考虑将其移至您的 Document class 代替,作为实例方法,然后你可以做 @doc.create_pdf(pdf) .

但是,如果您需要访问 create_pdf在您的意见中,您也可以输入 module_function :create_pdf在您的 DocumentHelper 内文件,或者您可以在您的工作人员中动态添加:
DocumentHelper.module_eval do
module_function(:create_pdf)
end
DocumentHelper.create_pdf(pdf)

然后就可以正常调用 DocumentHelper.create_pdf .

另外,在 Rails 3 中,我认为你只需要 include DocumentHelper ,而不是 include ActionView::Helpers::DocumentHelper .

关于ruby-on-rails - 在resque的背景下使用 Prawn 生成pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com