Ruby on rails 实例变量在实例方法调用中不可用
鉴于下面的情况,为什么我不能访问对虾块中的@inst变量 调用:PdfGen.new('inst').buildRuby 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方法)计算代码块,不同于对象
它看起来像是
Prawn::Document.generate()
在它自己的范围内(例如通过\instance\u eval
方法)计算代码块,与对象的范围不同
您可以通过打印
将类
放入此块来证明这一点。这会给你一个关于那里发生了什么的图片)它看起来像是Prawn::Document.generate()
在它自己的范围内(例如通过\instance\u eval
方法)计算代码块,不同于对象的范围
您可以通过打印
将类
放入此块来证明这一点。这将给你一个关于那里发生的事情的图片)请包括你已经尝试过的,你期望发生的,以及实际发生的事情。事实上,如果我复制并粘贴您的代码并运行PdfGen.new('foo').build
,它会引发一个异常,因为您没有正确格式化您的代码。请包括您尝试过的内容、您期望发生的内容以及实际发生的内容。事实上,如果我复制并粘贴您的代码并运行PdfGen.new('foo').build
,它会引发一个异常,因为您没有正确格式化您的代码。您好,就是这样def初始化(&block)`如果blockblock.arity<1?实例_eval(&block):block[self]
end
end
Hi就是这样def初始化(&block)`如果blockblock.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