Anular métodos de atributos de ActiveRecord

Un ejemplo de lo que estoy hablando:

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

Esto parece funcionar, pero acabo de leer la sección sobre la anulación de los métodos de atributo enActiveRecord :: Documentos base, y sugiere usar elread_attribute ywrite_attribute métodos Pensé que debe haber algo mal con lo que estoy haciendo en el ejemplo anterior; de lo contrario, ¿por qué bendecirían estos métodos como la "forma correcta" de anular los métodos de atributos? También están forzando un idioma mucho más feo, por lo que debe haber una buena razón ...

Mi verdadera pregunta: ¿Hay algo mal con este ejemplo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta