Kas*_*ail 8 ruby-on-rails wicked-pdf
嗨我使用wicked_pdf生成图像后我保存图像生成pdf并使用此标签显示图像这样
<%= wicked_pdf_image_tag(@image.snap.url(:original)) unless @image.blank? %>
Run Code Online (Sandbox Code Playgroud)
它给了我这个未知的错误
ActionView::Template::Error (undefined method `pathname' for nil:NilClass):
Run Code Online (Sandbox Code Playgroud)
而puts @ image.inspect给了我正确的路径
"/system/snaps/7/original/flake.jpg"
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙
谢谢....
我也遇到了同样的问题.在app/helpers/application_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
Run Code Online (Sandbox Code Playgroud)
在视图页面中,您要添加图像写入:
<%= wicked_pdf_image_tag_for_public @logo.url(:small) %>
Run Code Online (Sandbox Code Playgroud)
@ logo.url通过paperclip存储公共图像路径.
我希望这会有所帮助.
看起来这个错误源于 wicked_pdf 中的这一行:
https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf_helper.rb#L59
由于某种原因,find_asset(source) 对你来说为零。也许您需要将一些东西与您的资产管道结合在一起。我承认我还没有很多这方面的经验。
但是,您可以看到 wicked_pdf_image_tag 实际上是一个非常简单的助手:
https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf_helper.rb#L14
如果包含的内容不适合您,您可以轻松地编写自己的内容并将其放入 application_helper.rb 中。它所做的重要事情是为您的图像使用 file:// 路径,因为如果 wkhtmltopdf 在生成 PDF 时不必调用网络流量,那么它的渲染速度会快得多。
| 归档时间: |
|
| 查看次数: |
4198 次 |
| 最近记录: |