我想删除一个通过include
函数添加到我的类中的类方法。例如:
class Foo
include HTTParty
class << self
remove_method :get
end
end
这不起作用,它说“get”不是Foo的方法。基本上,“get”方法是HTTParty模块提供的,我想删除它。我尝试了几次没有运气的尝试。我读过/试过的东西:
答案 0 :(得分:8)
使用undef
代替remove_method
:
require 'httparty'
class Foo
include HTTParty
class << self
undef :get
end
end
Foo.get #=> NoMethodError: undefined method `get' for Foo:Class
取消方法定义。 Undef无法出现在方法中 身体。通过使用undef和别名,类的接口可以是 独立于超类修改,但请注意它可能已被破坏 程序通过内部方法调用自我。 http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/syntax.html#undef