0

我正在尝试 Prawn 生成 pdf,遵循这个 RailsCasts

如果我尝试下一个代码,它工作正常:

pdf = OrderPdf.new(@order)

但是,如果添加“view_context”

pdf = OrderPdf.new(@order, view_context)

我收到此错误:“xxxController#index 中的 SyntaxError”语法错误,意外 ',',期待 ')'

我尝试放入我的控制器helper_method :view_context,但错误仍然存​​在。

环境:rails 3.2.5

我的控制器:

  def show

@liquidacion = Liquidacion.find(params[:id])

respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @liquidacion }
  format.pdf do
    pdf = LiquidacionPdf.new (@liquidacion, view_context)
    send_data pdf.render, filename: "liquidacion_#{@liquidacion.anio.to_s()+''+@liquidacion.mes.to_s().rjust(2,'0')+''+@liquidacion.numeroliquidacion.to_s()}", type: "application/pdf", disposition: "inline"
  end
end 
end

还有我的班级PDF:

class LiquidacionPdf < Prawn::Document
def initialize(liquidacion, view)
    super(top_margin: 20, :page_layout => :landscape)
    @liquidacion = liquidacion
            @view = view
    numero_liqui
    nombre_usuario
    lineas_liqui
    total_liquidacion
    firmas
end

我怎么写这个?

4

1 回答 1

1

您的初始化方法应该接受两个参数。我猜你仍然只有一个。

将您的初始化方法更改为以下

 def initialize(order, view)
   super(top_margin: 70)
   @order = order
   @view = view 
   order_number
   line_items
 end

编辑

去掉括号或空格

respond_to do |format|
 format.html # show.html.erb
 format.json { render json: @liquidacion }
 format.pdf do
 pdf = LiquidacionPdf.new @liquidacion, view_context
于 2012-07-30T22:46:27.643 回答