首页 > 解决方案 > 我可以使用初始化方法将大虾生成的 pdf 文件保存到 profect 文件夹吗?

问题描述

我有一个OrderPdf继承自的类Prawn::Document这是该类的内容:

class OrderPdf < Prawn::Document
  include ActionView::Helpers::NumberHelper
  include ActionView::Helpers::TagHelper

  def initialize(order)
    super(top_margin: 50, size: 12)
    @order = order
    logo
    # Other methods that generate pdf's content
    footer
  end

  def logo
    # Some stuff here
  end

  def footer
    #Some stuff here
  end
end

我这样称呼它:OrderPdf.new(@order). 生成了 Pdf 文件,但我需要 - 将其保存到我的项目中,名称如下:"#{Rails.root}/public/uploads/orders/order-#{order.order_number}.pdf"我知道,我可以这样做:Prawn::Document.generate("#{Rails.root}/public/uploads/orders/order-#{order.order_number}.pdf"),但我可以用现有代码做一些类似的事情吗?提前谢谢。

标签: ruby-on-railsprawn

解决方案


您可以在初始化程序中调用该render_file方法。

def initialize(order)
  super(top_margin: 50, size: 12)
  @order = order
  logo
  # Other methods that generate pdf's content
  footer
  render_file "#{Rails.root}/public/uploads/orders/order-#{order.order_number}.pdf"
end

推荐阅读