8

こんにちは私はpdfを生成するときに画像を保存した後、画像を生成するためにwicked_pdfを使用しており、このタグをこのような表示画像に使用しました

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

それは私にこの未知のエラーを与えます

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

@image.inspectを置いている間私に正しい道を下に与えてください

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

誰も助けることができます

ありがとう....

4

3 に答える 3

8

私も同じ問題に直面しました。ファイルに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


そして、画像を追加したいビューページに次のように書きます:

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

@logo.url は、paperclip によって保存されたパブリックの画像パスを提供します。

それが役立つことを願っています。

于 2012-12-20T07:10:09.797 に答える
2

私も同じ問題を抱えていました。WicketPdfヘルパーは、アップロードされた添付ファイルではなく、アプリによって提供されるアセット用であることがわかりました。これらに対して行う必要があるのは、ホストを追加することだけです。これはURI.join、画像でを行うことで実行できます。 -urlと組み合わせてrequest.url..

PDF生成で機能する例を次に示します。

= image_tag( URI.join( request.url, model.attachment.url ) )
于 2013-01-23T09:44:27.523 に答える
2

このエラーは、wicked_pdfのこの行から発生しているようです。

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

find_asset(source)は、何らかの理由でnilです。多分あなたはあなたの資産パイプラインと何かを一緒にする必要があります。私はまだそれについて多くの経験を持っていないことを認めます。

しかし、wicked_pdf_image_tagは実際には非常に単純なヘルパーであることがわかります。

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

含まれているものが機能しない場合は、簡単に自分で作成してapplication_helper.rbにスローできます。それが行っている重要なことは、画像にfile://パスを使用することです。これは、PDFの生成中にネットワークトラフィックを呼び出す必要がない場合、wkhtmltopdfのレンダリングが大幅に高速化されるためです。

于 2012-09-06T12:35:34.563 に答える