Pregunta

Esto es probablemente más una cuestión de diseño o el uso, pero el principal problema está usando el plugin de langostinos con Rails 2.3.4 y acceder al objeto PDF resultante para convertirlo en un archivo.

El escenario es básicamente;

  • un controlador con la configuración de bloque respond_to
  • una vista con código para hacer que el texto, gráficos, etc a PDF

Parece que:
De Controlador cliente

def show    
    @customer = Customer.find(params[:id])  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
end

Desde vista al cliente

  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

Esto funciona bien, produciendo un archivo PDF en respuesta a /customers/1.pdf, como era de esperar con un archivo PDF que se genera.

Uno de los requisitos es para hacer que el pdf a un archivo y guardar una copia en el servidor. Gamba proporciona el método: pdf.render_file {path_tofile}

Así que ahora si incluyo esto en el código de Vista Por supuesto, puedo guardar el archivo en el servidor. Pero me gustaría para manejar esto en el controlador, ya que está relacionado con la lógica, no considera per se.

El primer intento fue:

def show    
   @customer = Customer.find(params[:id])
   @pdf = Prawn::Document.new()  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
      pdf.render_file {path_to_file}
end

Desde vista al cliente

  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

PROBLEMA El problema con este intento es que el PDF no se representa. Sospeché la variable de instancia controlador está chocando con la variable pdf Prawnto Plugin. Pero incluso cambiando la variable PDF no funcionó. ¿Alguna sugerencia?

¿Fue útil?

Solución

Esta es la forma en que uso en mi gambas carriles de aplicación: http://yob.id.au/2009/05/30/prawn-and-x-accel-redirect.html - que no utiliza en absoluto prawnto

.

Puede pasar por alto las cosas X-Accel-redirigir a menos que utilice nginx.

Alternativamente, otro de los desarrolladores de núcleo de gambas ha puesto juntos esta guía: http://wiki.github.com/sandal/prawn/using-prawn-in-rails

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top