2009-09-28 30 views
88

esiste un modo per ottenere il valore originale di un attributo ActiveRecord (= il valore che è stato caricato dal database)?Come ottenere il valore originale di un attributo in Rails

voglio qualcosa di simile in un osservatore

before_save object 
    do_something_with object.original_name 
end 

Il compito è quello di rimuovere l'oggetto da una tabella hash (in realtà, spostarlo in un'altra chiave nella tabella) al momento l'aggiornamento.

risposta

224

L'aggiunta di _was al proprio attributo fornisce il valore precedente.

+0

Grazie, esattamente quello che stavo cercando! –

+75

rails è così fantastico – digitalWestie

+7

E.g .: per 'self.context':' self.context_was' –

8

Il metodo di ActiveRecord attributes_before_type_cast restituisce un hash di attributi prima che si siano verificati typecasting e deserializzazione.

Problemi correlati