我正在尝试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
我是怎么写的?
答案 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