2010-02-02 9 views
6

Estoy buceando en ActiveRecord y no he podido encontrar una respuesta a mi pregunta. Si estoy actualizando los atributos de un objeto y luego llamando a save() ... ¿se guardará ActiveRecord en el DB SOLAMENTE cuando los nuevos valores sean diferentes de los valores anteriores?Comprensión de las actualizaciones simples de ActiveRecord en Rails

Digamos que hago algo como esto:

thing_to_update = Thing.find_or_create_by_code(some_code) 
if thing_to_update.name != some_name 
    thing_to_update.update_attribute(:name, some_name) 
end 

no quiero hacer llamadas adicionales para el PP si yo no tengo que porque voy a tener potencialmente para actualizar una gran cantidad de objetos. Traté de leer los documentos y no menciona nada sobre la comparación de valores nuevos con los antiguos. ¿Me estoy perdiendo de algo?

Gracias

Respuesta

4

ActiveRecord se no actualice su registro si no ha cambiado ningún atributo. Puede verificar esto usted mismo llamando a thing_to_update.save desde la consola y observando el registro. ActiveRecord cargará el registro, pero no intentará actualizarlo.

Cuestiones relacionadas