鉴于下面的情况,为什么我不能在Prawn块中访问我的@inst变量?
致电:PdfGen.new(' inst')。build
class PdfGen
@class = "class"
def initialize(inst)
@inst = inst
end
def build
@inst #=> 'inst'
Prawn::Document.generate() do
@inst #=> nil
@class #=> 'class'
end
end
end
答案 0 :(得分:2)
似乎Prawn::Document.generate()
评估代码块在其自己的范围内(例如通过#instance_eval
方法),与您对象的范围不同。
您可以在此块中打印puts class
来证明这一点。这将为您提供正在发生的事情的图片