2012-04-22 72 views
3

我做的是:如何正確覆蓋參數數量未知的方法?

class Foo 
    alias_method :__bar__,:bar 
    def bar(*arg) 
    #do something 
    __bar__(*arg) 
    end 
end 

它是正確的方式做到這一點?

或者最好找出原始方法有多少個必需的,可選的塊參數,並寫出完全相同數量的參數?

回答

2

的使用slurpy arg的是正確的做法,但你也應該處理任何塊參數:

class Foo 
    alias_method :__bar__,:bar 
    def bar(*arg, &block) 
    #do something 
    __bar__(*arg, &block) 
    end 
end 
+0

那好吧。我會用它:) – texasbruce 2012-04-23 02:51:26