Módulo: Mongoid::Validatable

Estendido por:
ActiveSupport::Concern
Incluído em:
Componível
Definido em:
lib/mongoid/validatable.rb,
lib/mongoid/validatable/format.rb,
lib/mongoid/validatable/long.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

Visão geral

Este módulo fornece validações adicionais que o ActiveModel não fornece: validates_associated e validates_uniqueness_of.

Definido sob namespace

Módulos: ClassMethods, Localizable, macros, Classes de query : AssociatedValidator, FormatValidator, ComprimentoValidator, PresençaValidator, UniquenessValidator

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#begin_validate ➤ Objeto

Inicie a validação associada.

Exemplos:

Begin validation.

document.begin_validate


29
30
31
# Arquivo 'lib/mongoid/validatable.rb', linha 29

def begin_validate
  Threaded.begin_validate(auto)
end

#exit_validate ➤ Objeto

Saia da validação associada.

Exemplos:

Sair da validação.

document.exit_validate


37
38
39
# Arquivo 'lib/mongoid/validatable.rb', linha 37

def exit_validate
  Threaded.exit_validate(auto)
end

#perform_validations?(opções = {}) ➤ verdadeiro | false

Dadas as opções fornecidas, estamos realizando validações?

Exemplos:

Estamos realizando validações?

document.performing_validations?(validate: true)

Parâmetros:

  • opções (Hash) (padrão para: {})

    As opções a serem verificadas.

Hash de opções (opções):

  • :validate (verdadeiro | falso)

    Se deve ou não validar.

Retorna:

  • (verdadeiro | falso)

    Se estivermos validando.



51
52
53
# Arquivo 'lib/mongoid/validatable.rb', linha 51

def perform_validations?(opções = {})
  opções[:validate].nada? ? true : opções[:validate]
end

#read_attribute_for_validation(attr) ➤ Objeto

Substitui o comportamento padrão do ActiveModel, pois precisamos lidar com validações de associações ligeiramente diferentes de apenas chamar o getter.

Exemplos:

Leia o valor.

person.read_attribute_for_validation(:addresses)

Parâmetros:

  • atr (Símbolo)

    O nome do campo ou associação.

Retorna:

  • (Objeto)

    O valor do campo ou da associação.



65
66
67
68
69
70
71
72
73
74
75
76
77
# Arquivo 'lib/mongoid/validatable.rb', linha 65

def read_attribute_for_validation(atr)
  atributo = database_field_name(atr)
  se relações.chave?(atributo)
    begin_validate
    relação = sem_autobuild { enviar(atr) }
    exit_validate
    relação.tentar(:in_memory) || relação
  elsif Campos[atributo].tentar(:localizado?)
    attributes[atributo]
  mais
    enviar(atr)
  end
end

#válido?(contexto = nil) ➤ verdadeiro | false

Determine se o documento é válido.

Exemplos:

O documento é válido?

person.valid?

O documento é válido em um contexto?

person.valid?(:create)

Parâmetros:

  • Contexto (Símbolo) (padrão para: nil)

    O contexto de validação opcional.

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se válido, falso se não.



90
91
92
# Arquivo 'lib/mongoid/validatable.rb', linha 90

def valid?(Contexto = nada)
  super Contexto ? Contexto : (new_record? ? :create : :update)
end

#validado?verdadeiro | false

Usado para evitar loops infinitos em validações associadas.

Exemplos:

O documento está validado?

document.validated?

Retorna:

  • (verdadeiro | falso)

    O documento já foi validado?



100
101
102
# Arquivo 'lib/mongoid/validatable.rb', linha 100

def validado?
  Threaded.validado?(auto)
end

#validate_with_query?verdadeiro | false

No momento, estamos realizando uma validação que tenha uma query?

Exemplos:

Estamos validando com uma query?

document.validating_with_query?

Retorna:

  • (verdadeiro | falso)

    Se estivermos validando com uma query.



110
111
112
# Arquivo 'lib/mongoid/validatable.rb', linha 110

def validate_with_query?
  auto.classe.validate_with_query?
end