Qual é o caminho certo para substituir um método setter em Ruby on Rails?

Estou usando Ruby on Rails 3.2.2 e gostaria de saber se o seguinte é uma maneira "correta" / "correta" / "segura" de substituir um método setter para um atributo my class.

<code>attr_accessible :attribute_name

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

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

O código acima parece funcionar como esperado. Contudo,Eu gostaria de saber se, usando o código acima, no futuro terei problemas ou, pelo menos, quais problemas "devo esperar" / "poderia acontecer" com Ruby on Rails. Se esse não é o caminho certo para substituir um método setter, qual é o caminho certo?

Nota: Se eu usar o código

<code>attr_accessible :attribute_name

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

  self.attribute_name = value
end
</code>

Estou tendo o erro a seguir:

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

questionAnswers(5)

yourAnswerToTheQuestion