Tengo una colección de objetos ActiveRecord. Quiero poder ejecutar todas las validaciones para cada uno de estos objetos sin realmente guardarlos en la base de datos. Solo quiero saber si serían válidos si los guardara en la base de datos. En otras palabras, esencialmente quiero rellenar la estructura de datos errors
para cada uno de mis objetos. ¿Hay alguna forma de hacer esto? ¿O quizás me falta algo sobre el ciclo de vida de la colección errors
?Ejecutar validaciones de ActiveRecord sin guardar
10
A
Respuesta
23
puede hacer lo siguiente para comprobar si un modelo es válido:
@user = User.new
if @user.valid?
#do things
Si quieres ver lo que los errores son, que puede hacer:
@user = User.new
unless @user.valid?
@user.errors.each {|k, v| puts "#{k.capitalize}: #{v}"}
Llamando al ".¿válido?" método ejecuta sus validaciones, colocando todos sus errores en un objeto ActiveRecord :: Errors, al que se puede acceder como lo hice en el ejemplo anterior. Pruebe los ejemplos en la consola para obtener una idea si lo desea.
2
Al ejecutar el método #valid?
en el objeto, se ejecutarán todas las validaciones y se completará la estructura errors
.
dude = Person.new
unless dude.valid?
# Examine errors
end
Cuestiones relacionadas
- 1. ¿Es necesario probar las validaciones de ActiveRecord?
- 2. ¿Cómo guardar algo en la base de datos después de las validaciones fallidas de ActiveRecord?
- 3. ¿Cómo ejecutar validaciones de subclase en herencia de tabla única?
- 4. Resumen de validación sin otras validaciones
- 5. carga de archivos sin activerecord
- 6. validaciones i18n
- 7. Cómo saltear las validaciones de has_secure_password
- 8. ¿Por qué no puedo verificar las validaciones de ActiveRecord en la consola?
- 9. Posible omitir validaciones en atributos_actualización?
- 10. validaciones de asociación factory_girl
- 11. Componer validaciones de Scalaz
- 12. validaciones DataMapper, errores vacíos
- 13. Ejecutar script de implementación en eclipse guardar
- 14. Excel VBA - Ejecutar macro antes de guardar
- 15. Extraiga el sql generado para crear/guardar un modelo ActiveRecord
- 16. cómo guardar activerecord object of rails to redis
- 17. ¿ActiveRecord guarda una asociación belongs_to al guardar el objeto principal?
- 18. validaciones en MVC/MVP
- 19. validaciones paperclip más inteligentes
- 20. validaciones condicionales en Spring
- 21. Guardar active_record sin llamar devoluciones de llamada en rails3
- 22. máquina de estado, Modelo validaciones y RSpec
- 23. VIM: ¿Guardar y ejecutar al mismo tiempo?
- 24. Cómo omitir validaciones con find_or_create_by_?
- 25. Eclipse: al guardar ejecutar un programa
- 26. la forma de ejecutar el bloque php desde el terminal sin guardar en un archivo
- 27. ¿Puedo compilar y ejecutar la expresión de C# sin guardar el ensamblado en el disco?
- 28. ¿Cómo encadena Rails ActiveRecord las cláusulas "where" sin múltiples consultas?
- 29. Instale ClickOnce sin ejecutar
- 30. my_object.save (falso) no omite REALMENTE mis validaciones de Active Record
En la misma línea, estoy tratando de mostrar un enlace de publicación basado en el registro es válido para publicar o no. En mis validaciones, estoy usando validates: if format. ¿Hay alguna manera fácil de cambiar el atributo para decir: verdadero y luego verificar si es válido para publicar? Por ej. post = Post.new (: title => "title",: published => false) post.published = true si post.valid? post.published = false – chetu