Clase: Mongoid::Asociación::Muchos

Hereda:
Apoderado
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Enumerable
Definido en:
lib/mongoid/asociación/many.rb

Overview

Esta es la superclase para todos los proxies de asociación de muchos a uno y de muchos a muchos.

Resumen constante

Constantes heredadas de Proxy

Proxy::MÉTODOS_KEEPER

Resumen de atributos de instancia

Atributos heredados de Proxy

#_association, #_base, #_target

Colapso del resumen del método de instancia

Métodos heredados de Proxy

aplicar_ordenamiento, #extender_proxies, #inicializar, #klass, #reiniciar_descargado, #sustituible

Métodos incluidos de Marshalable

#marshal_dump, #marshal_load

Detalles del constructor

Esta clase hereda un constructor de Mongoid::Association::Proxy

Detalles del método de instancia

# ¿enblanco?verdadero | falso

¿Está vacía la asociación?

Ejemplos:

¿Está vacía la asociación?

person.addresses.blank?

Devuelve:

  • (verdadero | falso)

    Si la asociación está vacía o no.



22
23
24
# Archivo 'lib/mongoid/association/many.rb', línea 22

def blank?
  !any?
end

#crear(atributos = nil, tipo = nil, &block) ⇒ Documento

Crea un nuevo documento en la asociación "referencias múltiples". Esto guardará el documento si el documento principal se ha conservado.

Ejemplos:

Crea y guarda el nuevo documento.

person.posts.create(:text => "Testing")

Parámetros:

  • atributos (Hash) (predeterminado: nulo)

    Los atributos para crear con.

  • tipo (Clase) (predeterminado: nulo)

    El tipo opcional de documento a crear.

Devuelve:



36
37
38
39
40
41
42
43
44
# Archivo 'lib/mongoid/association/many.rb', línea 36

def Cree(atributos = nulo, tipo = nulo, Ybloque)
  Si atributos.is_a?(::Arreglo)
    atributos.map { |attrs| Cree(attrs, tipo, Ybloque) }
  else
    doc = construir(atributos, tipo, Ybloque)
    _base.¿persistió? ? doc.guardar : aumentar_no guardado(doc)
    doc
  end
end

#¡crear!(atributos = nulo, tipo = nulo, &bloque) ⇒ Documento

Crea un nuevo documento en la asociación "referencias múltiples". Esto guardará el documento si el padre se ha conservado y generará un error si falla la validación.

Ejemplos:

Crea y guarda el nuevo documento.

person.posts.create!(:text => "Testing")

Parámetros:

  • atributos (Hash) (predeterminado: nulo)

    Los atributos para crear con.

  • tipo (Clase) (predeterminado: nulo)

    El tipo opcional de documento a crear.

Devuelve:

Aumentos:



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Archivo 'lib/mongoid/association/many.rb', línea 59

def ¡crear!(atributos = nulo, tipo = nulo, Ybloque)
  Si atributos.is_a?(::Arreglo)
    atributos.map { |attrs| ¡crear!(attrs, tipo, Ybloque) }
  else
    doc = construir(atributos, tipo, Ybloque)

    Arreglo(doc).cada hacer |doc|
      doc.intentar(:ejecutar devoluciones de llamadas pendientes)
    end

    _base.¿persistió? ? doc.save! : aumentar_no guardado(doc)
    doc
  end
end

#buscar_o_crear_por(atributos = {}, tipo = nulo, &bloque) ⇒ Documento

Encuentra el primer documento dadas las condiciones, o crea un nuevo documento con las condiciones proporcionadas.

@param [ Hash ] attrs The attributes to search or create with.
@param [ Class ] type The optional type of document to create.

Ejemplos:

Buscar o crear.

person.posts.find_or_create_by(:title => "Testing")

Devuelve:

  • (Documento) -

    Un documento existente o uno recién creado.



84
85
86
# Archivo 'lib/mongoid/association/many.rb', línea 84

def buscar_o_crear_por(attrs = {}, tipo = nulo, Ybloque)
  encontrar_o(:crear, attrs, tipo, Ybloque)
end

#¡buscar_o_crear_por!(atributos = {}, tipo = nulo, &bloque) ⇒ Documento

Busca el primer documento según las condiciones o crea uno nuevo con las condiciones proporcionadas. Esto generará un error si la validación falla.

Ejemplos:

Buscar o crear.

person.posts.find_or_create_by!(:title => "Testing")

Parámetros:

  • attrs (Hash) (predeterminado: {})

    Los atributos para buscar o crear.

  • tipo (Clase) (predeterminado: nulo)

    El tipo opcional de documento a crear.

Devuelve:

  • (Documento) -

    Un documento existente o uno recién creado.

Aumentos:



100
101
102
# Archivo 'lib/mongoid/association/many.rb', línea 100

def ¡Buscar_o_crear_por!(attrs = {}, tipo = nulo, Ybloque)
  encontrar_o(:¡crear!, attrs, tipo, Ybloque)
end

#buscar_o_inicializar_por(atributos = {}, tipo = nulo, &bloque) ⇒ Documento

Encuentra el primer Document dadas las condiciones, o instancia un nuevo documento con las condiciones proporcionadas.

Ejemplos:

Buscar o inicializar.

person.posts.find_or_initialize_by(:title => "Test")

Parámetros:

  • attrs (Hash) (predeterminado: {})

    Los atributos para buscar o inicializar.

  • tipo (Clase) (predeterminado: nulo)

    La subclase opcional a construir.

Devuelve:

  • (Documento) -

    Un documento existente o uno recién creado.



114
115
116
# Archivo 'lib/mongoid/association/many.rb', línea 114

def buscar_o_inicializar_por(attrs = {}, tipo = nulo, Ybloque)
  encontrar_o(:construir, attrs, tipo, Ybloque)
end

#nil?false

Este proxy nunca puede ser nulo.

Ejemplos:

¿El proxy es nulo?

relation.nil?

Devuelve:

  • (FALSO) -

    Siempre falso.



124
125
126
# Archivo 'lib/mongoid/association/many.rb', línea 124

def nil?
  false
end

#responder_a?(nombre, incluir_privado = falso) ⇒ verdadero | falso

Dado que method_missing se anula, deberíamos anular esto también.

Ejemplos:

¿El proxy responde al método?

relation.respond_to?(:name)

Parámetros:

  • Nombre ( Símbolo) -

    El nombre del método.

  • incluir_privado (true | false) (predeterminado: falso)

    Si se incluirán métodos privados.

Devuelve:

  • (verdadero | falso)

    Si el proxy responde al método.



137
138
139
140
# Archivo 'lib/mongoid/association/many.rb', línea 137

def respond_to?(Nombre, incluir_privado = false)
  [].respond_to?(Nombre, incluir_privado) ||
    klass.respond_to?(Nombre, incluir_privado) || Super
end

#alcanceCriterios

Este es el acceso público a los criterios de la asociación.

Ejemplos:

Obtener la asociación con ámbito.

relation.scoped

Devuelve:



148
149
150
# Archivo 'lib/mongoid/association/many.rb', línea 148

def con alcance
  criterios
end

#serializable_hash(options = {}) ⇒ Hash

Obtiene el documento como un hash serializable, utilizado por los serializadores JSON y XML de ActiveModel. Esta sobrescritura es solo para poder pasar las opciones :include y :except para obtener asociaciones en el hash.

Ejemplos:

Obtenga el hash serializable.

relation.serializable_hash

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Las opciones a pasar.

Opciones Hash(opciones):

  • :excepto (Símbolo| Cadena | Matriz<Símbolo | Cadena>)

    No incluya estos campos.

  • :incluir (Símbolo| Cadena | Matriz<Símbolo | Cadena>)

    Qué asociación(es) incluir.

  • :solo (Símbolo| Cadena | Matriz<Símbolo | Cadena>)

    Limite los campos únicamente a estos.

Devuelve:

  • (Hash)

    Los documentos, listos para ser serializados.



166
167
168
# Archivo 'lib/mongoid/association/many.rb', línea 166

def serializable_hash(opciones = {})
  _objetivo.map { |Documento| Documento.serializable_hash(opciones) }
end

#sin ámbitoCriterios

Obtenga un criterio para los documentos incrustados sin el alcance predeterminado aplicado.

Ejemplos:

Obtener los criterios no acotados.

person.addresses.unscoped

Devuelve:



177
178
179
# Archivo 'lib/mongoid/association/many.rb', línea 177

def sin alcance
  criterios.sin alcance
end