实例方法调用中的实例变量不可用

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 来证明这一点。这将为您提供那里正在发生的事情的图片)