Korzystam z Ruby on Rails 3.2.2 i chciałbym wiedzieć, czy poniższe są „właściwym” / „poprawnym” / „pewnym” sposobem na przesłonięcie metody ustawiającej dla atrybutu mojej klasy.
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self[:attribute_name] = value
end
Powyższy kod wydaje się działać zgodnie z oczekiwaniami. Jednak chciałbym wiedzieć, czy, stosując powyższy kod w przyszłości będę miał problemy, a przynajmniej, jakie problemy „należy się spodziewać” / „może się zdarzyć” z Ruby on Rails . Jeśli to nie jest właściwy sposób na zastąpienie metody setera, jaki jest właściwy sposób?
Uwaga : jeśli użyję kodu
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self.attribute_name = value
end
Otrzymuję następujący błąd:
SystemStackError (stack level too deep):
actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70