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

时间:2011-04-16 09:12:10

标签: ruby-on-rails ruby prawn

我正在尝试使用Prawn生成pdf

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

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

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

1 个答案:

答案 0 :(得分:8)

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

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