Lendo um pouco sobre herança em Ruby descobri uma coisa interessante, ao usar o método super
em algum método, pode ocorrer da erro caso o desenvolvedor não preste atenção. Quando você redefine um método e chama super
sem parênteses e sem argumentos, o Ruby irá pegar os parâmetros passados para o método na subclasse passar de forma implícita para o método da superclasse, se os parâmetros do método na superclasse forem diferentes dos parâmetros no método redefinido irá resultar em erro.
Exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Como resolver isso? Simples.
Caso o método da superclasse não receba parâmetros chame o método super com parênteses super()
Exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|