当猴子修补方法时,你能从新实现调用重写方法吗?

时间:2010-12-17 11:43:08

标签: ruby monkeypatching

假设我是猴子修补类中的方法,我怎么能从重写方法调用重写方法?即有点像super

的东西

E.g。

class Foo
  def bar()
    "Hello"
  end
end 

class Foo
  def bar()
    super() + " World"
  end
end

>> Foo.new.bar == "Hello World"

3 个答案:

答案 0 :(得分:1094)

答案 1 :(得分:12)

看看别名方法,这有点将方法重命名为新名称。

有关更多信息和起点,请查看此replacing methods article(尤其是第一部分)。 Ruby API docs也提供了(不太精细)的例子。

答案 2 :(得分:-1)

必须在包含原始方法的类之后重新加载要进行覆盖的类,因此在文件中require将覆盖它。