我正在尝试使用Prawn生成pdf
@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do
text "hello #{@buyer.name} world"
end
但这显然不起作用(只有我使用类变量@@ buyer),我的问题是将变量传递给Prawn :: Document.generate的正确方法
(我知道对此的解决方案是prawnto,但我正在尝试一点......而且这也是一个sinatra项目)
答案 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对象传递给块。然后在当前对象中评估该块,以便您的实例变量仍在范围内。