rails 3将view_context发送给Prawn

时间:2012-07-30 21:48:07

标签: ruby-on-rails ruby-on-rails-3 prawn

我正在尝试Prawn生成pdf,跟随this 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

我的classPDF:

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

我是怎么写的?

1 个答案:

答案 0 :(得分:1)

您的initialize方法应该接受两个参数。我猜你还只有一个。

将初始化方法更改为以下

 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