我有一个ruby程序,希望接受用户编写的方法,并根据该名称创建新的方法。我尝试了以下操作:
def method_missing(meth,*args,&block)
name = meth.to_s
class << self
define_method(name) do
puts "hello " + name
end
end
end
我收到了以下错误信息:
`define_method': interning empty string (ArgumentError) in 'method_missing'
有什么想法吗?谢谢。
编辑:
我用另一种方式让它工作了,但我仍然好奇如何用这种方式做到。这是我的代码:
def method_missing(meth,*args,&block)
Adder.class_eval do
define_method(meth) do
puts "hello " + meth
end
end
send("#{meth}")
end
self.class.class_eval
来代替eigenclass = class << self; self; end
。 - poorva