Um exemplo do que estou falando:
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
Isso parece funcionar, mas acabei de ler a seção sobre substituição de métodos de atributo nos documentos ActiveRecord :: Base , e sugere o uso dos métodos read_attribute
e write_attribute
. Eu pensei que deveria haver algo errado com o que estou fazendo no exemplo acima; caso contrário, por que eles abençoariam esses métodos como o "caminho certo" para substituir os métodos de atributo? Eles também estão forçando uma linguagem muito mais feia, então deve haver uma boa razão ...
Minha verdadeira pergunta: há algo de errado com este exemplo?