¿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.

attr_accessible :attribute_name

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

  self[:attribute_name] = value
end

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

attr_accessible :attribute_name

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

  self.attribute_name = value
end

Obtuve el siguiente error:

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