用prawn生成PDF - 如何在Prawn.generate中访问变量?

equ*_*nt8 6 ruby ruby-on-rails prawn

我正在尝试使用Prawn生成pdf

@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do
  text "hello #{@buyer.name} world"
end
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用(只有我使用类变量@@ buyer),我的问题是将变量传递给Prawn :: Document.generate的正确方法是什么

(我知道解决这个问题的方法是prawnto,但我正在尝试一点......而且这也是一个sinatra项目)

Tap*_*nen 10

http://rdoc.info/github/sandal/prawn/master/Prawn/Document#generate-class_method看起来如果将变量传递给块,它将在当前上下文中进行评估.所以尝试:

@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do |pdf|
  pdf.text "hello #{@buyer.name} world"
end
Run Code Online (Sandbox Code Playgroud)

编辑:为了更清楚,这意味着不是在新的Prawn :: Document对象中计算块,而是将Prawn :: Document对象传递给块.然后在当前对象中评估该块,以便您的实例变量仍在范围内.