2013-12-23 15 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