使用 prawn 生成 PDF - 如何访问 Prawn.generate 中的变量?
我正在尝试使用 Prawn 生成 pdf
@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do
text "hello #{@buyer.name} world"
end
,但这显然不起作用(仅当我使用类变量 @@buyer 时),我的问题是将变量传递给 Prawn::Document.generate 的正确方法是什么
(我知道解决这个问题的办法是 prawnto 但我正在尝试一点......而且它也是一个 sinatra 项目)
I'm trying to generate pdf using Prawn
@buyer = Buyer.last
Prawn::Document.generate("samle.pdf") do
text "hello #{@buyer.name} world"
end
but this obviously doesn't work (only if I use class variable @@buyer), my question is what is the proper way of passing variable to Prawn::Document.generate
(I know the solution to this is prawnto but I'm experimenting little bit ...and also it's a sinatra project)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 http://rdoc.info/github/sandal/prawn/ master/Prawn/Document#generate-class_method 看起来如果您将一个变量传递到您的块中,那么它将在当前上下文中进行评估。所以尝试:
编辑:更清楚地说,这意味着不是在新的 Prawn::Document 对象内评估块,而是将 Prawn::Document 对象传递到块中。然后在当前对象内评估该块,以便您的实例变量仍在范围内。
From http://rdoc.info/github/sandal/prawn/master/Prawn/Document#generate-class_method it looks like if you pass a variable in to your block it will be then evaluated in the current context. So try:
Edit: To be more clear, this means that rather than the block being evaluated inside a new Prawn::Document object, the Prawn::Document object is instead passed into the block. The block is then evaluated within the current object so your instance variables are still in scope.