4

我多年来一直在使用虾。现在我已经切换到 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'

然后在我设置的大虾文件中

@avatar_path = options[:avatar_path]

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

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

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

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

4

2 回答 2

1

我今天为此苦苦挣扎,直到我偶然发现了这个 github 问题。https://github.com/prawnpdf/prawn/issues/1111。在您刚刚放入的generateor方法中:render

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

如果您将生成方法放在模型中,那将是

pdf.image StringIO.open(attachment.download)
于 2019-09-09T20:27:50.520 回答
0

获取 url 如下所示:

user.avatar.variant(resize: "100x100").service_url
于 2018-03-10T03:42:29.580 回答