如何在 Prawn PDF 中嵌入 Active Storage 中的图像?

Tin*_*n81 3 ruby-on-rails prawn rails-activestorage

我正在尝试将 Rails 的Active Storage中的图像嵌入到 Prawn PDF 中。

这是我在 Prawn PDF 课程中得到的内容:

path = @view.rails_blob_url(@logo, :host => "localhost:3000", :protocol => "http", :locale => nil)
image(path, :vposition => :center)
Run Code Online (Sandbox Code Playgroud)

当我尝试打开 PDF 时,出现以下错误:

InvoicesController 中的 ArgumentError #show http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBGdz09IiwiZXhwIjxudWxsHCJwdXIiOiJibG9iX2lkIn19--06167c36c283f6d5de63ae306 b721310af11f70e/Test-Logo.png 未找到

当我将完全相同的 URL 复制到浏览器中时,图像会按预期显示。5分钟后就过期了(?)。

我在这里缺少什么?

如何在 PDF 中显示图像?

为什么图像可以在浏览器中呈现,但不能在我的 PDF 中呈现?

我今天花了一整天的时间试图让它发挥作用,但没有成功。

小智 7

这对我有用:

def initialize_globals
  logo_from_object = @organization.logo
  @logo = StringIO.open(logo_from_object.download)
  ..
  ..
  ..
end

def print_header
  image @logo, scale: 0.10
end
Run Code Online (Sandbox Code Playgroud)