Así que he estado tirando de mi cabello solucionando este error que he estado teniendo, y finalmente descubrí lo que lo estaba causando. Siempre había estado bajo la impresión de que cuando llamémy_object.save (falso) no omite REALMENTE mis validaciones de Active Record
@my_model.save(false)
que iba a ser saltarse mis validaciones ActiveRecord. Resulta que esto es parcialmente cierto. Mis objetos están guardando en la base de datos A PESAR mi validación de ActiveRecord. Mi problema existe porque una de mis validaciones modifica uno de los modelos hijos durante el proceso de validación (Esta es una aplicación de programación para una ubicación de 24 horas, por lo tanto, cuando se guardan almuerzos, los controlo contra el día en que se guardan, Y al día siguiente también para asegurarse de que el usuario no quiso decir "2am" para un turno de noche.
Mi pregunta es esta: ¿hay alguna manera de saltear mis validaciones y pasar directamente a la base de datos? ¿Es este comportamiento normal de ActiveRecord o ¿Debería profundizar en mis validaciones? ¿O no tengo suerte y necesito volver a escribir mis validaciones?
Así que estás diciendo que el código de validación todavía se está ejecutando, es simplemente ignorar el resultado de ellos, y esto es un problema ya que modifica el modelo en sus validaciones. Usaría algo más que validaciones para desinfectar los datos. – bhollis
¡Eso es exactamente! Supongo que esa es mi respuesta definitiva, pero pensé que probaría suerte para ver si podía encontrar otra. – BushyMark
Usar validaciones para postprocesar sus objetos comerciales es definitivamente un olor. Las validaciones están destinadas a verificar datos, no a modificarlos. Para modificar, use los diversos ganchos de ciclo de vida de ActiveRecord en su lugar: antes/después de guardar, antes/después de crear, etc. – Matthias