2011-08-27 21 views
7

¿Hay algún modo de que identifique si un objeto/registro está sucio antes de guardarlo y qué campos se cambian en Rails?Identificación de si el registro/objeto está sucio en Rails

Ejemplo

Supongamos que tengo un modelo de persona y la persona tiene una propiedad llamada nombre y edad. En el PP, Persona con id 1 se llama "John" con la edad 20.

p = Person.find 1 
p.name #John 
p.age #20 

ahora, cuando cambio su nombre de John a Nathan, ¿hay alguna manera de que yo identifico

  1. el objeto se cambia (sucio)
  2. y qué campos se cambió

Ahora sé la respuesta a la primera. Si cambio el nombre a Nathna, puedo hacer lo siguiente

p.name = "Nathan" 
p.changed? #true 

Sin embargo, hay alguna forma para mí para identificar qué campo se ha cambiado? ¿Puede ser un método que devuelve una matriz de campos que se cambiaron?

p.dirty_fields #[:name] 

Respuesta

Cuestiones relacionadas