在后台使用 prawn 和 resque 生成 pdf

2024-03-31

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

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

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

The create_pdf方法是来自DocumentHelper但我收到此错误:

undefined method `create_pdf' 

有人知道怎么做吗?


您正在尝试调用实例方法(create_pdf)来自类方法(self.perform)。你的代码只有在你的DocumentHelper定义的create_pdf作为类方法:

def self.create_pdf

如果您不需要访问create_pdf在您看来,您可以考虑将其移至您的Document类,作为实例方法,然后你可以这样做@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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在后台使用 prawn 和 resque 生成 pdf 的相关文章

随机推荐

  • 如何跨应用程序整合 ASP.NET 母版页?

    第一次在这些板上提出问题 希望我能得到一些帮助 这里是 我正在努力在我的客户处启动 NET 实践 目前 我们有 5 个小型 NET 应用程序 其中一些已投入生产 它们大多是带有一些数据输入 业务逻辑功能的小型报告 这些应用程序中的每一个当前
  • TypeScript 在类型构造函数中推断回调返回类型

    我想为接收类型的函数编写一个类型构造函数S和一个函数S到另一种类型 然后将该函数应用于S并返回结果 This works but it s tied to the implementation function dig
  • 如何将 REST 请求转发到另一个资源?

    在我当前的架构中 我有一个位于后面的 JAX RS 资源 categories categories catId 是这样实现的 Path categories Produces application json public class C
  • jquery Mobile Tap 和冒泡/传播

    在 android 2 x 浏览器中查看此示例 它是在我的应用程序中复制场景的示例 http johnchako net samples tap html http johnchacko net samples tap html 它是关于监
  • Ionic 3:安装 cordova-plugin-camera 和 Native Web-intent 后 Android 添加平台失败

    首先 感谢您抽出时间来帮助我 Summary 尝试将 cordova plugin camera 添加到我的 ionic 3 项目中 经过多次失败并最终成功后 现在我的应用程序不再在我的 Android 上构建 开始编辑 经过多次测试 当我
  • Polymer 中动态生成的 HTML 的数据绑定?

    当我在我的里面写下以下内容时
  • 以数据帧作为输入的模型上的多重处理

    我想在模型上使用多重处理 以使用数据帧作为输入来获得预测 我有以下代码 def perform model predictions model dataFrame cores 4 try with Pool processes cores
  • 设置自定义视图的样式

    我的 Android 项目中有一些自定义视图 并且我已将相关详细信息添加到 attrs xml 文件中 现在我可以通过 XML 实现我的对象 这很好用 我如何设计这些元素的样式 当我尝试在 styles xml 中使用自定义属性时 出现错误
  • 从 MYSQL DB 中搜索电话号码

    我有一张桌子phone柱子 其中的电话看起来像 1 123 456 3780 如果用户在搜索字段 35 中输入 我应该向他显示所有拥有手机的用户 3 534 000 1010 1 350 000 9090 1 003 534 2343 1
  • Signal-R 如何适应 IIS 激活模型?

    我正在学习 Signal R 这是我一直以来的想法 Signalr 如何融入 IIS ASP NET 生命周期 集线器的寿命有多长 我看到它们有重新连接语义 IIS 是否会阻止具有持久连接的 AppDomain 关闭 据我了解 IIS 旨在
  • 搜索二维数组内的子数组(图像识别)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 本质上 我有一个 numpy 图像数组 我试图查找它是否包含特定 RGB 像素值的 2x2 块 因此 例如 如果我的 简化的 图像数组类似
  • 多核机器上的 Hadoop 和 Map-Reduce

    我读过很多关于在机器集群上运行的 Hadoop 和 Map Reduce 的内容 有人知道 Apache 发行版是否可以在具有多个内核的 SMP 上运行吗 特别是 多个Map Reduce进程是否可以在同一台机器上运行 调度程序将负责将它们
  • .NET OutputCache 指令不起作用

    我一直遇到奇怪的缓存问题 并将一个非常简单的 NET 页面与输出缓存指令放在一起 但是 该页面不会缓存 内容会在每次刷新时更新 我在本地计算机 Windows 7 上安装了一个简单 最小的 CMS 站点 Ektron v 9 0 SP2 在
  • 有没有办法将数据从 .csv 导入到活动 Excel 工作表?

    我有一个始终以相同名称命名的 csv 文件 名为 SO2PO csv 我将其中的数据导入到名为 PO 数据 的 Excel 工作表中 该工作表位于名为 未结订单 的工作簿中 我需要找到一种方法将 SO2PO csv 中的所有数据导入到 Op
  • 为什么我的样式包在 ASP.NET MVC 4 中无法正确呈现?

    所以我是 ASP NET MVC 4 的新手 嗯 我用过一点 3 无论如何 在我的 BundleConfig cs 文件中 我尝试加载 Twitter Bootstrap css 文件和附加的site css file 但仅呈现 site
  • 正确预防 PHP 中的邮件注入

    你能告诉我如何预防吗电子邮件注入 http en wikipedia org wiki Email injection in PHP mail 而不丢失原始消息数据 例如 如果我需要允许用户使用 r n To CC等等 所以我不想将它们完全
  • VS 2015 中未解决 Microsoft.NETCORE.app 依赖关系

    我在使用 Visual Studio 2015 时遇到问题 当我创建新的 CORE 1 0 项目时 引用显示错误 指出 NETCoreApp 无法解析 当我打开project json 文件时 Microsoft NETCore App 带
  • 在页面内容上方浮动一个 div [重复]

    这个问题在这里已经有答案了 我实现了一个动态显示搜索选项的弹出框 我希望该框 浮动 在所有网站内容之上 目前 当显示该框时 它会取代其下方的所有内容 并且看起来很糟糕 我相信我已经尝试将框的 div 的 z index 设置为高于其余页面内
  • 恢复 SQL Server 2005 数据库后将所有用户链接到登录

    请注意 此问题询问有关链接所有用户的问题 这与询问有关链接单个用户的可能重复问题不同 我希望在两台服务器之间移动数据库 我已经从第一台服务器备份了数据库 并在第二台服务器上进行了数据库恢复 到目前为止一切顺利 然而 我们的应用程序使用了数据
  • 在后台使用 prawn 和 resque 生成 pdf

    我正在尝试通过 Resque 后台作业在后台创建 PDF 文档 我用于创建 PDF 的代码位于 Rails 辅助方法中 我想在 Resque 工作线程中使用该方法 例如 class DocumentCreator queue documen