Ruby on rails wicked_pdf_image_标记为图像指定了未定义的路径名

Ruby on rails wicked_pdf_image_标记为图像指定了未定义的路径名,ruby-on-rails,wicked-pdf,Ruby On Rails,Wicked Pdf,嗨,我正在使用wicked_pdf生成图像,当我生成pdf时保存图像,并使用此标记显示图像,如下所示 <%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %> while put@image.inspect在下面给我正确的路径 "/system/snaps/7/original/flake.jpg" 有人能帮忙吗 谢谢……看起来此错误源自wicked_pdf中的这一行

嗨,我正在使用wicked_pdf生成图像,当我生成pdf时保存图像,并使用此标记显示图像,如下所示

  <%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %>
while put@image.inspect在下面给我正确的路径

       "/system/snaps/7/original/flake.jpg"
有人能帮忙吗


谢谢……

看起来此错误源自wicked_pdf中的这一行:

出于某种原因,“查找”资源(源)为零。也许你需要在你的资产管道上做点什么。我承认我还没有很多这方面的经验

但是,您可以看到wicked_pdf_image_标记实际上是一个非常简单的助手:


您可以轻松地编写自己的应用程序,并将其放入application_helper.rb中(如果包含的应用程序不适合您)。它所做的重要事情是为您的图像使用file://路径,因为如果生成PDF时不必调用网络流量,wkhtmltopdf将渲染得更快。

我也面临同样的问题。 在
app/helpers/application\u helper.rb文件中编写以下代码行:

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

并在要添加图像的视图页面中写入:

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

@logo.url提供由曲别针存储的公共图像路径


我希望这会有所帮助。

我也遇到了同样的问题,原来WicketPdf帮助程序是针对应用程序提供的资产,而不是上传的附件。。您需要做的唯一一件事就是添加主机。。您可以通过在图像url上执行
URI.join
,并结合
request.url
,来实现这一点

下面是一个在PDF生成中起作用的示例:

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

在我的应用程序助手def wicked_pdf_image_tag(img,options={})image_tag“file://#{WickedPdfHelper.root_path.join('public',images',img)}中包含此项时,请给出错误,选项结束时错误为ActionView::Template::error(WickedPdfHelper:Module的未定义方法'root_path'):尝试“file://#{Rails.root.join('public','images',img)}”以完全跳过资产管道。我还没有验证,但我怀疑它是用来处理/assets/images中的图像,而不是/public中的文件
= image_tag( URI.join( request.url, model.attachment.url ) )