validations validate tablas relaciones rails guias formularios form español anidados ruby-on-rails activerecord

ruby on rails - validate - En los rieles, ¿cómo puedo averiguar qué causó que falle un.save(), aparte de los errores de validación?



ruby on rails guias (5)

Tengo un modelo ActiveRecord que devuelve true de valid? (y .errors está vacío), pero está devolviendo false desde save() . Si la instancia del modelo es válida, ¿cómo puedo averiguar qué es lo que está causando el error de guardado?


El problema que tuve fue que olvidé agregar la validación al modelo.

class ContactGroup < ActiveRecord::Base validates_presence_of :name end


Intenta usar la versión de bang save! (con un signo de exclamación al final) e inspeccionando el error resultante.


Sí, solucioné este problema asegurándome de que soy verdadero en todas mis devoluciones de llamada before_ * y luego comienza a funcionar :)


Si @user.save (por ejemplo) devuelve false , simplemente ejecute esto para obtener todos los errores:

@user.errors.full_messages


Verifica todas tus devoluciones de llamada.

Tuve un problema como este en el que tenía y el método "after_validate" que estaba fallando después de haber realizado un montón de cambios en el modelo. El modelo era válido pero el "after_validate" devolvía false, así que si usé model.valid , dicho true, pero si lo model.valid , me dio errores de validación (pasados ​​desde la devolución de llamada after_validate). Fue raro.

Observe el seguimiento de la aplicación y podrá ver qué línea de código está generando la excepción.