Я получаю undefined local variable or method
ошибку.
class MyClass
def initialize(my_value, &if_undefine_method)
@my_value = my_value
@a = if_undefine_method
end
def method_missing(m, *args, &block)
@a.call
end
def my_method_to_call_from_block
'HELLO'
end
end
a = MyClass.new("some_value") do
my_method_to_call_from_block
end
Когда я вызываю отсутствующий метод:
a.a_method_that_does_not_exist
, вызывается method_missing, но яполучить сообщение об ошибке:
Traceback (последний последний вызов): 3: from (irb): 17 2: from lib / myruby.rb: 22: блок method_missing'
1: from (irb):16:in
в irb_binding 'NameError (неопределенная локальная переменная или метод my_method_to_call_from_block для main: Object)
Как мне ссылаться на метод экземпляра из блока, который я передаю, чтобы предотвратить ошибку?