Mandar a imprimir

Hola…
Aqui ando de pregunton nuevamente…

y es sobre algo de lo que no encuentro casi nada de documentacion y es
el proceso de impresion…

Hice lo siguiente

Dentro de initializer/mime_types.rb agregue lo sig

Mime::Type.register “text/html”, :print

Dentro del archivo recibos/show.html.erb agregue un link

<%= link_to “Imprime recibo”, {:format => “print”} %>

En el controlador recibos_controller.rd modifique el metodo show

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @recibo }
format.print { render :layout => “print” }
end

y dentro de /layouts hice un nuevo archivo llamado print.html.erb
y solo le puse una linea de saludo


Segun una guia eso es lo unico que se necesita para desplegar el
asistente de impresion…

Apague y reinicie el mongrel

y al momento de recargar no puedo entrar a show…

obtengo este error

Missing template recibos/show.print.erb in view path
/home/fvasquez/NetBeansProjects/control/app/views

no se porque me pide un archivo show.print.erb dentro de recibos si
estoy renderizando el layout print

format.print { render :layout => “print” }

Alguna sugerencia

Si les la documentación le estas diciendo que renderice con el layout
print.html.erb, la acción show con el formato html, esto es :
Renderiza show.print.erb con el layout print.html.erb

No lo he mirado, pero si estás en respondiendo a un :format => :print,
con un layout que se llama “print”… ¿no debería ser el nombre del
archivo print.print.erb? Lo digo porque no se porqué se elige html.erb
automáticamente, pero repito que no lo he mirado.

Además de lo que te comento arriba, tienes otro problema. Estás generando
contenido duplicado. Mírate los posts de este mes por que este tema ya se
debatió.

No se donde leí justo esta semana (pasaría rápidamente por mis ojos en
mi lector de feeds) que Google parece que no considera una “versión
para imprimir” contenido duplicado (supongo que al ser una práctica
tan extendida Google se haya adaptado a ella), pero luego los SEO se
ponía a discutir sobre ello y no llegaban a nada.

Bai.

2008/9/17 Faustino V. [email protected]

Hola…

Hola.

y es sobre algo de lo que no encuentro casi nada de documentacion y es

el proceso de impresion…

No me lo creo.

Hice lo siguiente

Dentro de initializer/mime_types.rb agregue lo sig

Mime::Type.register “text/html”, :print

No te hace falta, ya que el formato lo especificas explicitamente

Dentro del archivo recibos/show.html.erb agregue un link
<%= link_to “Imprime recibo”, {:format => “print”} %>

Bien

En el controlador recibos_controller.rd modifique el metodo show

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @recibo }
format.print { render :layout => “print” }
end

Si les la documentación le estas diciendo que renderice con el layout
print.html.erb, la acción show con el formato html, esto es :
Renderiza show.print.erb con el layout print.html.erb

y dentro de /layouts hice un nuevo archivo llamado print.html.erb
y solo le puse una linea de saludo

Vale

Segun una guia eso es lo unico que se necesita para desplegar el
asistente de impresion…

Podías pasar el vínculo de la guía por favor. Me extraña que diga eso.

Apague y reinicie el mongrel

No es necesario en entorno de desarrollo ya que recarga automáticamente
los
controladores.

y al momento de recargar no puedo entrar a show…

obtengo este error

Missing template recibos/show.print.erb in view path
/home/fvasquez/NetBeansProjects/control/app/views

Está haciendo lo que le dices que haga, y el te dice que no puede hacer
lo
que le dices que haga por que le falta un archivo.

no se porque me pide un archivo show.print.erb dentro de recibos si
estoy renderizando el layout print

Te recomiendo que mires alguna guía más de rails y entiendas el
significado
de respond_to

format.print { render :layout => “print” }

Un suponer, sería, sin haberlo probado:
format.print { render :format => “html”, :layout => “print” }

Alguna sugerencia

Además de lo que te comento arriba, tienes otro problema. Estás
generando
contenido duplicado. Mírate los posts de este mes por que este tema ya
se
debatió.

Un Saludo

2008/9/17 Daniel R. Troitiño [email protected]

Si les la documentación le estas diciendo que renderice con el layout
print.html.erb, la acción show con el formato html, esto es :
Renderiza show.print.erb con el layout print.html.erb

No lo he mirado, pero si estás en respondiendo a un :format => :print,
con un layout que se llama “print”… ¿no debería ser el nombre del
archivo print.print.erb? Lo digo porque no se porqué se elige html.erb
automáticamente, pero repito que no lo he mirado.

Ahí tienes toda la razón. Me he colado. Ahora mismo no se como es, pero
desde luego, tiene bastante lógica lo que dices.

¿Alguien ha usado alguna vez algún layout que no sea html? ¿En que casos
puede ser interesante?

No se donde leí justo esta semana (pasaría rápidamente por mis ojos en

mi lector de feeds) que Google parece que no considera una “versión
para imprimir” contenido duplicado (supongo que al ser una práctica
tan extendida Google se haya adaptado a ella), pero luego los SEO se
ponía a discutir sobre ello y no llegaban a nada.

A parte de temas de SEO, para mí me es más comodo hacer un css que se
dedique a ocultar elementos, que currarse otra maquetación, y programar
el
código, y hacer test.

Si quiero hacer una versión de verdad para imprimir, esta responde a pdf
o
incluso más correctamente a ps.

Un Saludo

muchas Gracias por sus comentarios…

Ya logre solucionarlo y me di cuenta donde andaba mal…

Saque el proceso de impresion del show e hice un metodo aparte que se
llama imprime

con un template y un layout solo para ese proceso

Me di cuenta de algo

el template imprime.print.erb con un layout imprime.print.erb

solo funcionan con firefox, lo probe con IE y con Chrome y no reconocen
buscan un template imprime.html.erb asi que los cambie y listo funcionan
en los tres navegadores…

Muchas gracias y voy a seguirles preguntando por aqui…

Aun soy medio guey en todo esto…