我正在尝试使用大虾生成pdf
@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do
text "hello #{@buyer.name} world"
end
但这显然不起作用(仅当我使用类变量@@ buyer时),我的问题是将变量传递给Prawn::Document.generate的正确方法是什么
(我知道解决方案是prawnto,但我正在做一些实验……这也是一个sinatra项目)
最佳答案
从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对象传递到该块中。然后在当前对象中评估该块,因此您的实例变量仍在范围内。
关于ruby-on-rails - 用 Prawn 生成PDF-如何访问Prawn.generate中的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5685492/