Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 实例变量在实例方法调用中不可用_Ruby On Rails_Ruby_Variables_Prawn_Scopes - Fatal编程技术网

Ruby on rails 实例变量在实例方法调用中不可用

Ruby on rails 实例变量在实例方法调用中不可用,ruby-on-rails,ruby,variables,prawn,scopes,Ruby On Rails,Ruby,Variables,Prawn,Scopes,鉴于下面的情况,为什么我不能访问对虾块中的@inst变量 调用:PdfGen.new('inst').build 它看起来像是Prawn::Document.generate()在它自己的范围内(例如通过\instance\u eval方法)计算代码块,与对象的范围不同 您可以通过打印将类放入此块来证明这一点。这会给你一个关于那里发生了什么的图片)它看起来像是Prawn::Document.generate()在它自己的范围内(例如通过\instance\u eval方法)计算代码块,不同于对象

鉴于下面的情况,为什么我不能访问对虾块中的@inst变量

调用:PdfGen.new('inst').build


它看起来像是
Prawn::Document.generate()
在它自己的范围内(例如通过
\instance\u eval
方法)计算代码块,与对象的范围不同


您可以通过打印
将类
放入此块来证明这一点。这会给你一个关于那里发生了什么的图片)

它看起来像是
Prawn::Document.generate()
在它自己的范围内(例如通过
\instance\u eval
方法)计算代码块,不同于对象的范围


您可以通过打印
将类
放入此块来证明这一点。这将给你一个关于那里发生的事情的图片)

请包括你已经尝试过的,你期望发生的,以及实际发生的事情。事实上,如果我复制并粘贴您的代码并运行
PdfGen.new('foo').build
,它会引发一个异常,因为您没有正确格式化您的代码。请包括您尝试过的内容、您期望发生的内容以及实际发生的内容。事实上,如果我复制并粘贴您的代码并运行
PdfGen.new('foo').build
,它会引发一个异常,因为您没有正确格式化您的代码。您好,就是这样def初始化(&block)`
如果block
block.arity<1?实例_eval(&block):block[self]
end
end
Hi就是这样def初始化(&block)`
如果block
block.arity<1?实例评估(&block):块[自身]
结束
结束
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