如何在Prawn pdf中放置rails ActiveStorage附件?

时间:2018-02-01 01:30:40

标签: ruby-on-rails-5 prawn rails-activestorage

我多年来一直在使用Prawn。现在我已经切换到ActiveStorage,事情发生了一些变化。我在Prawn :: Document中使用url_for或rails_blob_path时遇到问题。我想我会在这里发帖,看看是否有人对如何使用rails ActiveStorage在Prawn :: Document中嵌入图像有所了解。

我正在尝试从控制器调用Pdf时将路径作为参数传递的方法...如下所示:

pdf = IdBadge.new(@user, avatar_path: url_for(@user.avatar))
send_data pdf.render, filename: 'IDBadge.pdf', type: 'application/pdf'

然后在我设置的prawn文档中

@avatar_path = options[:avatar_path]

然后,从我调用的pdf中的方法

image(open(@avatar_path), fit: [100, 100], position: :center)

我在尝试解决这个问题时遇到了一些错误......目前该页面的超时时间为40000毫秒,这使我无法看到其他潜在错误。

有人在Prawn :: Document中嵌入了ActiveStorage图像吗?

2 个答案:

答案 0 :(得分:0)

获取网址将如下所示:

user.avatar.variant(resize: "100x100").service_url

答案 1 :(得分:0)

我今天为此苦苦挣扎,直到偶然发现了这个github问题。 https://github.com/prawnpdf/prawn/issues/1111。您只需在#Intent;action=android.intent.action.MAIN; category=android.intent.category.LAUNCHER; launchFlags=0x30020000; package=de.slova.huawei; component=de.slova.huawei/de.slova.MainActivity;end generate方法中放入:

render

如果将生成方法放到模型中,它将只是

pdf.image StringIO.open(@model.attachemnt.download)