Clase: Mongoid::Association::Referenced::HasMany

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Capaz de construirse, Con criterios polimórficos, Mongoid::Association::Relatable
Definido en:
lib/mongoid/association/referenced/has_many.rb,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/referenced/has_many/binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb

Overview

La asociación has_many.

Definido bajo Namespace

Modules: Construible clase: Vínculo, Eager, Enumerable, Proxy

Resumen de constantes colapsar

ASSOCIATION_OPTIONS =

Las opciones disponibles para este tipo de asociación, además de las comunes.

Devuelve:

  • (arreglo<Symbol>)

    Las opciones válidas extra.

%i[
  después_de_agregar
  after_removal
  como
  autosave
  before_add
  antes_de_remover
  dependiente
  foreign_key
  orden
  clave_primaria
  Alcance
].freeze
VALID_OPTIONS =

La lista completa de opciones válidas para esta asociación, incluidas las compartidas.

Devuelve:

  • (arreglo<Symbol>)

    Las opciones válidas.

(ASSOCIATION_OPTIONS + OPCIONES_COMPARTIDAS).freeze
FOREIGN_KEY_SUFFIX =

El sufijo por defecto de clave foránea.

Devuelve:

  • (string)

    '_id'

'_id'

Constantes incluidas de Mongoid::Association::Relatable

Mongoid::Association::Relatable::PRIMARY_KEY_DEFAULT, Mongoid::Association::Relatable::SHARED_OPTIONS

Resumen del atributo de la instancia

Atributos incluidos desde Mongoid::Association::Relatable

#name, #options, #owner_class, #parent_inclusions

Resumen del método de instancia colapsar

Métodos incluidos de WithPolymorphicCriteria

#con_criterio_polimórfico

Métodos incluidos de Buildable

compilar

Métodos incluidos de Mongoid::Association::Relatable

#==, #counter_cache_column_name, #create_relation, #destructive?, #extension, #foreign_key_check, #foreign_key_setter, #get_callbacks, #in_to?, #initialize, #inverse, #inverse_association, #inverse_class, #inverse_class_name, #inverse_setter, #inverse_type, #inverse_type_setter, #inverses, #key, #many?, #one?, #relation_class, #relation_class_name, #setter, #type_setter, #validate?

Métodos incluidos de Opciones

#as, #autobuilding?, #autosave, #cascading_callbacks?, #counter_cached?, #cyclic?, #dependent, #forced_nil_inverse?, #índice?, #inverse_of, #order, #primary_key, #store_as, #touch_field, #touchable?

Métodos incluidos de Constrainable

#convert_to_foreign_key

Detalles del método de instancia

#add_polymorphic_criterion(criteria, object_class) ⇒ Mongoid::Criteria

Obsoleto.

en 9.0.x

Agrega criterios de query polimórficos a un objeto Criteria, si esta asociación es polimórfica.

Parece que este método es un artefacto que quedó de una refactorización en la que se renombró a with_polymorphic_criterion y se hizo privado. No obstante, este método no se referencia en ningún otro lugar y es poco probable que sea útil para clientes externos. Deberíamos removerlo.

Parámetros:

  • criterios (Mongoid::Criteria)

    El objeto de criterios al que se agregará.

  • object_class (clase)

    La clase de objeto.

Devuelve:



148
149
150
151
152
153
154
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 148

def add_polymorphic_criterion(criterios, object_class)
  si polimórfico?
    criterios.dónde(tipo => object_class.Nombre)
  else
    criterios
  end
end

#Se puede vincular?(doc) ⇒ verdadero | falso

Si intentar vincular un objeto mediante esta asociación debe generar un error.

Parámetros:

  • doc (documento)

    El documento que debe ser encuadernado.

Devuelve:

  • (true | false)

    Si el documento se puede encuadernar.



170
171
172
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 170

def ¿se puede vincular?(doc)
  forced_nil_inverse? || (!!inversa && doc.Campos.claves.incluir?(foreign_key))
end

#criterios(base) ⇒ Mongoid::Criteria

Los criterios utilizados para consultar esta asociación.

Devuelve:



122
123
124
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 122

def criterios(base)
  query_criteria(base.enviar(clave_primaria), base)
end

#¿integrado?false

¿Este tipo de asociación está incrustado?

Devuelve:

  • (false)

    Siempre falso.



94
95
96
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 94

def ¿Incorporado?
  false
end

#foreign_keyString

Obtén el campo de clave foránea en la inversa para guardar la referencia de la asociación.

Devuelve:

  • (string)

    El campo de clave foránea en la inversión para guardar la referencia de asociación.



83
84
85
86
87
88
89
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 83

def foreign_key
  @foreign_key ||= si @options[:foreign_key]
                     @options[:foreign_key].to_s
                   else
                     default_foreign_key_field
                   end
end

#nested_builder(attributes, options) ⇒ Asociación::Anidada::Muchas

El objeto builder anidado.

Parámetros:

  • atributos (encriptada)

    Los atributos a utilizar para compilar el objeto de asociación.

  • opciones (encriptada)

    Las opciones para la asociación.

Devuelve:



180
181
182
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 180

def nested_builder(atributos, opciones)
  Anidado::Muchos.Nuevo(sí mismo, atributos, opciones)
end

#ruta(documento) ⇒ Raíz

Obtén la calculadora de rutas para el documento suministrado.

Ejemplos:

Obtén la calculadora de rutas.

Proxy.path(document)

Parámetros:

  • Documento (documento)

    El documento sobre el que calcular.

Devuelve:

  • (Root)

    El calculador de rutas atómicas raíz.



192
193
194
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 192

def ruta(Documento)
  Mongoid::Atómico::Rutas::Root (raíz).Nuevo(Documento)
end

#polimórfico?true | false

¿Es esta asociación polimórfica?

Devuelve:

  • (true | false)

    Si esta asociación es polimórfica.



160
161
162
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 160

def polimórfico?
  @polymorphic ||= !!como
end

#relaciónAssociation::HasMany::Proxy

Obtenga la clase proxy de asociación para este tipo de asociación.

Devuelve:

  • (Association::HasMany::Proxy)

    La clase proxy.



115
116
117
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 115

def relación
  Proxy
end

#relation_complementsArray<Mongoid::Association::Relatable>

La lista de complementos de asociaciones.

Devuelve:



51
52
53
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 51

def relation_complements
  @relation_complements ||= [ Referenciado::BelongsTo ].freeze
end

#scopeProc | Symbol | nil

Obtén el alcance que se aplicará al consultar la asociación.

Devuelve:

  • (Proc | Symbol | nil)

    El alcance de la asociación, si lo hubiera.



199
200
201
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 199

def Alcance
  @options[:alcance]
end

#configurar!self

Configura los métodos de instancia, campos, etc. en la clase propietaria de la asociación.

Devuelve:

  • (self)


58
59
60
61
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 58

def setup!
  setup_instance_methods!
  sí mismo
end

#setup_instance_methods!self

Configurar los métodos de instancia en la clase que tenga este tipo de asociación.

Devuelve:

  • (self)


66
67
68
69
70
71
72
73
74
75
76
77
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 66

def setup_instance_methods!
  define_getter!
  define_ids_getter!
  define_setter!
  define_ids_setter!
  definir_comprobación_de_existencia!
  define_autosaver!
  ¡polimórfico!
  define_dependency!
  @owner_class.valida_asociado(Nombre) si validate?
  sí mismo
end

#stores_foreign_key?true

¿Este tipo de asociación almacena la clave externa?

Devuelve:

  • (cierto)

    Siempre verdadero.



108
109
110
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 108

def ¿stores_foreign_key?
  false
end

#typeString | nil

Nota:

Solo aplicable a asociaciones polimórficas.

El tipo de esta asociación si es polimórfica.

Devuelve:

  • (String | nil)

    El campo type.



131
132
133
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 131

def tipo
  @type ||= "#{as}_type" si polimórfico?
end

#validation_defaulttrue

El valor por defecto para la validación del objeto de asociación.

Devuelve:

  • (cierto)

    Siempre verdadero.



101
102
103
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 101

def validation_default
  true
end