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