我创建了一些类
class Book
def perform
yield
end
end
然后我想调用将调用method1
和method2
的块。但是这两种方法都没有定义,我不想定义它们。而不是这个我想调用method_missing,但我得到:
undefined local variable or method 'method1' for main:Object (NameError)
book = Book.new
book.perform do
method1
method2
end
那我该怎么办?
答案 0 :(得分:1)
为了做你要求的事情,我相信你需要像这样重新定义method_missing
:
class Book
def perform
yield
end
end
def method_missing(methodname, *args)
puts "#{methodname} called"
end
book = Book.new
book.perform do
method1
method2
end
#=>
#method1 called
#method2 called