Probablemente esta sea una de las cosas que todos los nuevos usuarios averiguen sobre Rails tarde o temprano. Me acabo de dar cuenta de que los rieles están actualizando todos los campos con la palabra clave serialize, sin verificar si algo realmente cambió dentro. De una manera que es lo sensato para hacer para el marco genérico.¿Hay alguna manera de evitar que los atributos serializados en los rieles se actualicen incluso si no hay cambios?
¿Pero existe una forma de anular este comportamiento? Si puedo hacer un seguimiento de si los valores en un campo serializado han cambiado o no, ¿hay alguna manera de evitar que se inserte en la declaración de actualización? Intenté usar "atributos_de_actualización" y limitar el hash a los campos de interés, pero los raíles todavía actualizan todos los campos serializados.
Sugerencias?
que parece bastante prometedor. ¡Gracias! Ahora que sé qué anular, podría hacer eso (junto con el super) en lugar de usar el método de encadenamiento, a menos que existan advertencias al tomar ese enfoque. Avíseme si ve algún problema si simplemente uso override + super. – Tabrez
Lo intenté también, pero noté que no funcionaba. El problema es que update_with_dirty ya está cargado (a través de la cadena original) antes de que tengas la oportunidad de anularlo y usar super. – Joris
Entendido. Gracias Joris! – Tabrez