Substituir métodos de atributo ActiveRecord

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 noDocumentos ActiveRecord :: Basee sugere usar oread_attribute ewrite_attribute métodos. 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?

questionAnswers(4)

yourAnswerToTheQuestion