2010-09-21 14 views

Respuesta

10

Dado que no hay muchos detalles en su pregunta, supongo que se refiere a objetos ActiveRecord. Para ver los atributos modificados en los llamados "Dirty objetos" puede hacer lo siguiente:

User.changed #=> ["name", "email"] 

User.changes #=> { "name" => ["Joe", "Joseph"] } 

También hay métodos para cada atributo si es necesario comprobar los específicos.

User.name_changed? #=> true 

User.name_change #=> ["Joe", "Joseph"] 

Más detalles aquí: http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

+0

(rdb: 118) self.misc1_id_changed? true (rdb: 118) self.misc1_id_change [5, 5] .. Por qué aparece como cambiado no hay cambios en valores .. –

+0

Si los valores son los mismos, el atributo no se debe marcar como ch anged ¿Qué modificaciones estás haciendo al objeto antes de verificar qué ha cambiado? – Sidane

+0

En la actualización estoy pasando valores de mi formulario. Estoy modificando solo un atributo Sin embargo, estoy obteniendo todos los valores de los atributos que han cambiado. Quiero configurar las condiciones de la actualización. El usuario solo puede modificar algunos de los atributos. Si el usuario actualizará otros atributos, no quiero devolver los errores. Pero obtener todos los atributos como cambiados si los atributos no se cambian. Y muestra los mismos valores –

0

Sí ActiveRecord: sucios, sin embargo no se puede ver cambios en los objetos guardados en la Db, como user.save :(

+0

Puedes lograr eso con algo como papertrail https://github.com/airblade/paper_trail –

Cuestiones relacionadas