Sto usando Ruby on Rails 3.2.2 e vorrei sapere se il seguente è un modo "corretto"/"corretto"/"sicuro" per sovrascrivere un metodo setter per un mio attributo di classe.Qual è il modo giusto per sostituire un metodo setter in Ruby on Rails?
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self[:attribute_name] = value
end
Il codice sopra riportato funziona come previsto. Tuttavia, vorrei sapere se, utilizzando il codice precedente, in futuro avrò problemi o, almeno, quali problemi "dovrei aspettarmi"/"potrebbe accadere" con Ruby on Rails. Se questo non è il modo giusto per scavalcare un metodo setter, qual è il modo giusto?
Nota: Se io uso il codice
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self.attribute_name = value
end
ottengo il seguente errore:
SystemStackError (stack level too deep):
actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70
amo la terminologia applicata ' "corretta"/"corretta"/"certo"'. Quando gli dai 3 modi, assicura davvero che non ci siano equivoci. Buon lavoro! – Jay
@ Jay - "Fine italianismi"; -) – Backo
Giusto per essere chiari, il "livello di stack troppo profondo" si riferisce al fatto che è una chiamata ricorsiva ... la sua stessa chiamata. – Nippysaurus