代码之家  ›  专栏  ›  技术社区  ›  Alex Zakruzhetskyi

我可以用initialize方法将由prawn生成的pdf文件保存到profect文件夹吗?

  •  0
  • Alex Zakruzhetskyi  · 技术社区  · 7 年前

    我有一个 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") ,但是我可以用现有的代码做一些类似的事情吗?谢谢你。

    1 回复  |  直到 7 年前
        1
  •  1
  •   SteveTurczyn    7 年前

    你可以打电话给 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