2013-12-23 26 views
1

所以我有這個模塊與所有大多數所有的方法具有相同的可選參數。我怎樣才能重構它?Rails可選參數 - 重構?

class A 
    module B 

    def ab(name,type = :default) 
    ##do stuff 
    end 

    def abc(name,type = :default) 
    ##do stuff 
    end 

    def abcd(name,type = :default) 
    ##do stuff 
    end 
    end 
end 

那麼,有沒有某種方式重構的方法

+0

類型可選參數,它取決於方法和它們的用途。如果它有意義並且它們共享某些功能,則可以將它們合併爲一個函數,並傳遞第三個參數來告訴函數實現ab,abc或abcd。 但是,如果方法具有非常不同的功能,即使您將重複可選參數3次,讓它們分開也會更好。 – AbM

+0

@AbM所有的方法具有不同的功能,不共享任何。 – kill007

回答

1
class A 
    @@type = :default 

    def ab(name, type = @@type) 
    # ... 
    end 
end 
+0

我們仍然繼續分配值來輸入每種方法嗎? – kill007

+0

正確 - 這是一個簡短的例子。 – pdoherty926