实例方法调用中的实例变量不可用
Instance variable not avaliable in instance method call
鉴于以下情况,为什么我无法访问 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
似乎 Prawn::Document.generate()
在它自己的范围内评估代码块(例如通过 #instance_eval
方法),不同于您对象的范围。
您可以通过在此块中打印 puts class
来证明这一点。这将为您提供那里正在发生的事情的图片)
鉴于以下情况,为什么我无法访问 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
似乎 Prawn::Document.generate()
在它自己的范围内评估代码块(例如通过 #instance_eval
方法),不同于您对象的范围。
您可以通过在此块中打印 puts class
来证明这一点。这将为您提供那里正在发生的事情的图片)