0
我遇到了與instance_eval
和模塊包含有關的問題。Instance_eval無權訪問模塊中的類
請看看下面的代碼:
module B
class C
def initialize
puts 'This is C'
end
end
def hello
puts 'hello'
end
end
class A
include B
def initialize(&block)
hello
C.new
instance_eval(&block)
end
end
A.new do
hello
C.new
end
當我運行這段代碼,我得到
hello
This is C
hello
-:25:in `block in ': uninitialized constant C (NameError)
from -:19:in `instance_eval'
from -:19:in `initialize'
from -:23:in `new'
from -:23:in `'
據我所知,它與綁定和如何方法和對象綁定到做上課。我不明白的是,如何在A
內訪問C
,但不是當我評估block
時。我希望他們在相同的範圍內。
謝謝!
謝謝。這確實使得它更容易理解錯誤。有沒有什麼辦法可以做到這一點,而不必指定完整的命名空間? –