来自ruby对象的未定义单例方法

来自ruby对象的未定义单例方法,ruby,Ruby,我希望能够在给定对象上取消定义单例方法 class A end a = A.new def a.foo puts "bar" end # undef a.foo here a.foo # should crash A类 结束 新的 def a.foo “酒吧” 结束 a、 实例_eval{unde:foo} a、 foo#=>未定义的#方法'foo'(NoMethodError) Haha。。你比我快。。我刚想出来:——)——另外,谢谢你提供了另一种解决方案!(我会尽快接受答案)太好了

我希望能够在给定对象上取消定义单例方法

class A
end

a = A.new
def a.foo
  puts "bar"
end

# undef a.foo here
a.foo # should crash
A类
结束
新的
def a.foo
“酒吧”
结束
a、 实例_eval{unde:foo}
a、 foo#=>未定义的#方法'foo'(NoMethodError)

Haha。。你比我快。。我刚想出来:——)——另外,谢谢你提供了另一种解决方案!(我会尽快接受答案)太好了!更好的语法!
class << a
  undef foo
end
a.singleton_class.send :undef_method, :foo
class A
end

a = A.new
def a.foo
  puts "bar"
end

a.instance_eval { undef :foo }

a.foo # =>  undefined method `foo' for #<A:0x8469c60> (NoMethodError)