2009-09-28 24 views
88

Gibt es eine Möglichkeit, den ursprünglichen Wert eines ActiveRecord-Attributs (= der Wert, der aus der Datenbank geladen wurde) zu erhalten?Wie erhält man den ursprünglichen Wert eines Attributs in Rails

Ich möchte so etwas wie dies in einem Beobachter

before_save object 
    do_something_with object.original_name 
end 

Die Aufgabe ist es, das Objekt aus einer Hash-Tabelle (in der Tat, es auf eine andere Taste in der Tabelle bewegen) zu entfernen, auf Aktualisierung.

Antwort

224

Wenn Sie das Attribut _was an Ihr Attribut anhängen, erhalten Sie den vorherigen Wert.

+0

Danke, genau das, was ich gesucht habe! –

+75

rails is so awesome – digitalWestie

+7

ZB für 'self.context':' self.context_was' –

8

Die Methode attributes_before_type_cast von ActiveRecord gibt einen Hash der Attribute zurück, bevor Typumwandlung und Deserialisierung stattgefunden haben.

Verwandte Themen