evil_pdf_image_tag dado un nombre de ruta indefinido para la imagen

Hola, estoy usando evil_pdf para generar imágenes después de guardar la imagen cuando genero pdf y usé esta etiqueta para mostrar una imagen como esta

  <%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %>

me da este error desconocido

      ActionView::Template::Error (undefined method `pathname' for nil:NilClass):

mientras pone @image.inspect dame el camino correcto a continuación

       "/system/snaps/7/original/flake.jpg"

Alguien puede ayudar

Gracias ....

preguntado el 29 de agosto de 12 a las 15:08

No lo he verificado, pero sospecho que está diseñado para funcionar con imágenes en /assets/images en lugar de archivos en /public -

3 Respuestas

Yo también enfrenté el mismo problema. En app/helpers/application_helper.rb file escribe las siguientes líneas de código:

module ApplicationHelper
  def wicked_pdf_image_tag_for_public(img, options={})
    if img[0] == "/"
      new_image = img.slice(1..-1)
      image_tag "file://#{Rails.root.join('public', new_image)}", options
    else
      image_tag "file://#{Rails.root.join('public', 'images', img)}", options
    end
  end
end


Y en la página de vista donde desea agregar una imagen, escriba:

<%= wicked_pdf_image_tag_for_public @logo.url(:small) %>

@logo.url proporciona la ruta de la imagen en público almacenada por paperclip.

Espero que le ayudará.

Respondido el 20 de enero de 14 a las 13:01

Tuve el mismo problema, resulta que el asistente de WicketPdf es para los activos servidos por su aplicación en lugar de los archivos adjuntos cargados. Lo único que debe hacer para estos es agregar el host. Puede hacerlo haciendo un URI.join en la URL de la imagen combinada con la request.url..

Aquí hay un ejemplo que funciona en la generación de PDF:

= image_tag( URI.join( request.url, model.attachment.url ) )

Respondido el 23 de enero de 13 a las 09:01

Parece que este error surge de esta línea en evil_pdf:

https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf_helper.rb#L59

find_asset (fuente) es nulo por alguna razón para usted. Tal vez necesite obtener algo junto con su cartera de activos. Admito que todavía no tengo mucha experiencia con eso.

Pero puedes ver que evil_pdf_image_tag es en realidad un ayudante muy simple:

https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf_helper.rb#L14

Puede escribir fácilmente el suyo propio y colocarlo en application_helper.rb si el incluido no funciona para usted. Lo importante que está haciendo es usar una ruta file:// para su imagen, porque wkhtmltopdf se procesará mucho más rápido si no tiene que invocar tráfico de red mientras genera su PDF.

Respondido el 06 de Septiembre de 12 a las 13:09

dame un error cuando incluyo esto en mi aplicación helper def evil_pdf_image_tag(img, options={}) image_tag "file://#{WickedPdfHelper.root_path.join('public', 'images', img)}", options end el error es ActionView::Template::Error (método indefinido `root_path' para WickedPdfHelper:Module): - Kashiftufail

Pruebe "file://#{Rails.root.join('public','images',img)}" para omitir la canalización de activos por completo. - Unixmonkey

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.