¿Cuál es la forma correcta de anular un método de establecimiento en Ruby on Rails?

Estoy usando Ruby on Rails 3.2.2 y me gustaría saber si la siguiente es una forma "correcta" / "correcta" / "segura" de anular un método de establecimiento para un atributo de mi clase.

<code>attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self[:attribute_name] = value
end
</code>

El código anterior parece funcionar como se esperaba. Sin embargo,Me gustaría saber si, al usar el código anterior, en el futuro tendré problemas o, al menos, qué problemas "debería esperar" / "podría ocurrir" con Ruby on Rails. Si esa no es la forma correcta de anular un método de establecimiento, ¿cuál es la manera correcta?

Nota: Si uso el codigo

<code>attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self.attribute_name = value
end
</code>

Obtuve el siguiente error:

<code>SystemStackError (stack level too deep):
  actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70
</code>

Respuestas a la pregunta(5)

Su respuesta a la pregunta