我想重寫一個位於Ruby/Rails中的Gem中的方法,並且我正在努力解決一些問題。從模塊方法調用超級模塊
我的目標是在調用Gem中的某個方法時執行自定義代碼,但也會繼續執行原始代碼。
我試圖抽象的代碼放到下面的腳本:
module Foo
class << self
def foobar
puts "foo"
end
end
end
module Foo
class << self
def foobar
puts "bar"
super
end
end
end
Foo.foobar
執行這個腳本給我這個錯誤:
in `foobar': super: no superclass method `foobar' for Foo:Module (NoMethodError)
我應該怎麼寫壓倒一切的方法,所以我可以叫超與這個例外被提出?
PS:重寫工作得很好,如果我刪除超級,但然後原來的方法沒有被調用,我不想這樣。
^這一點,你只需重新定義方法foobar的 – derp
好吧,我現在明白了。 非常感謝! – Elhu