Módulo: Mongoid::Validatable

Ampliado por:
ActiveSupport::Preocupación
Incluido en:
Componible
Definido en:
lib/mongoid/validatable.rb,
lib/mongoid/validatable/format.rb,
lib/mongoid/validatable/length.rb,
lib/mongoid/validatable/macros.rb,
lib/mongoid/validatable/presence.rb,
lib/mongoid/validatable/queryable.rb,
lib/mongoid/validatable/associated.rb,
lib/mongoid/validatable/uniqueness.rb,
lib/mongoid/validatable/localizable.rb,
lib/mongoid/validatable/numericality.rb

Overview

Este módulo proporciona validaciones adicionales que ActiveModel no proporciona: validates_associated y validates_uniqueness_of.

Definido en el espacio de nombres

Modules: Métodos de clase, localizables, macros, clases consultables: AssociatedValidator, FormatValidator, LengthValidator, NumeralityValidator, PresenceValidator, UniquenessValidator

Colapso del resumen del método de instancia

Detalles del método de instancia

#begin_validateObjeto

Iniciar la validación asociada.

Ejemplos:

Begin validation.

document.begin_validate


30
31
32
# Archivo 'lib/mongoid/validatable.rb', línea 30

def comenzar_validar
  Compacto.comenzar_validar(yo)
end

#exit_validateObjeto

Salir de la validación asociada.

Ejemplos:

Validación de salida.

document.exit_validate


38
39
40
# Archivo 'lib/mongoid/validatable.rb', línea 38

def exit_validate
  Compacto.exit_validate(yo)
end

#¿realizando_validaciones?(opciones = {}) ⇒ verdadero | falso

Dadas las opciones proporcionadas, ¿estamos realizando validaciones?

Ejemplos:

¿Estamos realizando validaciones?

document.performing_validations?(validate: true)

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Las opciones a comprobar.

Opciones Hash(opciones):

  • :validar (true | false)

    Si validar o no.

Devuelve:

  • (verdadero | falso)

    Si estamos validando.



60
61
62
# Archivo 'lib/mongoid/validatable.rb', línea 60

def realizando_validaciones?(opciones = {})
  opciones[:validar].nil? ? true : opciones[:validar]
end

#leer_atributo_para_validación(attr) ⇒ Objeto

Anula el comportamiento predeterminado de ActiveModel ya que necesitamos manejar validaciones de asociaciones de forma ligeramente diferente a simplemente llamar al captador.

Ejemplos:

Lea el valor.

person.read_attribute_for_validation(:addresses)

Parámetros:

  • attr ( Símbolo) -

    El nombre del campo o asociación.

Devuelve:

  • (Objeto) -

    El valor del campo o de la asociación.



74
75
76
77
78
79
80
81
82
83
84
85
86
# Archivo 'lib/mongoid/validatable.rb', línea 74

def leer_atributo_para_validación(attr)
  atributo = nombre_del_campo_de_base_de_datos(attr)
  Si relaciones.key?(atributo)
    comenzar_validar
    relación = sin_autoconstrucción { Enviar(attr) }
    exit_validate
    relación.intentar(:en_memoria) || relación
  elsif campos[atributo].intentar(:localizado?)
    atributos[atributo]
  else
    Enviar(attr)
  end
end

#¿válido?(contexto = nil) ⇒ true | false

Determinar si el documento es válido.

Ejemplos:

¿Es válido el documento?

person.valid?

¿Es válido el documento en un contexto?

person.valid?(:create)

Parámetros:

  • context ( Símbolo) (predeterminado: nulo)

    El contexto de validación opcional.

Devuelve:

  • (verdadero | falso)

    Verdadero si es válido, falso si no.



99
100
101
# Archivo 'lib/mongoid/validatable.rb', línea 99

def valid?(context = nulo)
  Super context ? context : (¿nuevo_registro? ? :crear : :update)
end

#validado?verdadero | falso

Se utiliza para evitar bucles infinitos en las validaciones asociadas.

Ejemplos:

¿El documento está validado?

document.validated?

Devuelve:

  • (verdadero | falso)

    ¿El documento ya ha sido validado?



109
110
111
# Archivo 'lib/mongoid/validatable.rb', línea 109

def ¿validado?
  Compacto.¿validado?(yo)
end

#validandoObjeto

Realizar una validación dentro del bloque asociado.



43
44
45
46
47
48
# Archivo 'lib/mongoid/validatable.rb', línea 43

def validando
  comenzar_validar
  rendimiento
asegurar
  exit_validate
end

#validando_con_consulta?verdadero | falso

¿Actualmente estamos realizando una validación que tiene una consulta?

Ejemplos:

¿Estamos validando con una consulta?

document.validating_with_query?

Devuelve:

  • (verdadero | falso)

    Si estamos validando con una consulta.



119
120
121
# Archivo 'lib/mongoid/validatable.rb', línea 119

def ¿validando_con_consulta?
  yo.clase.¿validando_con_consulta?
end