Clase: Mongoid::Association::Many
- Hereda:
-
Association::Proxy
- Objeto
- Association::Proxy
- Mongoid::Asociación::Many
- Ampliado por:
- Reenviable
- Incluye:
- Enumerable
- Definido en:
- lib/mongoid/association/many.rb
Overview
Esta es la superclase para todos los proxies de asociación de muchos a uno y de muchos a muchos.
Subclases conocidas directas
Resumen del método de instancia colapsar
-
#¿en blanco? ⇒ verdadero | falso
¿Está vacía la asociación?
-
#cache_version(timestamp_column = :updated_at) ⇒ String
Para la compatibilidad con la caché de Rails.
-
#crear(attributes = nil, type = nil, &block) ⇒ Documento
Crea un nuevo documento en la asociación de referencias múltiples.
-
#crear!(atributos = nil, tipo = nil, &bloque) ⇒ Documento
Crea un nuevo documento en la asociación de referencias múltiples.
-
#find_or_create_by(attrs = {}, type = nil, &block) ⇒ Documento
Encuentra el primer documento que cumpla las condiciones dadas o crea un nuevo documento con las condiciones que se proporcionaron.
-
#find_or_create_by!(attrs = {}, type = nil, &block) ⇒ Document
Encuentra el primer documento que cumpla las condiciones dadas o crea un nuevo documento con las condiciones que se proporcionaron.
-
#find_or_initialize_by(attrs = {}, type = nil, &block) ⇒ Document
Encuentra la primera
Documentdadas las condiciones, o crea un nuevo documento con las condiciones que se proporcionaron. -
#nil? ⇒ false
Este proxy nunca puede ser nulo.
-
#respond_to?(nombre, include_private = false) ⇒ true | false
Dado que method_missing se anula, también deberíamos anular esto.
-
#scoped ⇒ Criterios
Este es el acceso público a los criterios de la asociación.
-
#serializable_hash(options = {}) ⇒ Hash
Obtiene el document como un hash serializable, utilizado por los serializadores JSON y XML de ActiveModel.
-
#sin ámbito ⇒ Criterios
Obtén un criterio para los documentos incrustados sin que se aplique el alcance por defecto.
Detalles del método de instancia
#en blanco? ⇒ verdadero | falso
¿Está vacía la asociación?
28 29 30 |
# Archivo 'lib/mongoid/association/many.rb', línea 28 def blank? !any? end |
#cache_version(timestamp_column = :updated_at) ⇒ String
Para garantizar la compatibilidad con el almacenamiento en caché de Rails. Devuelve una string basada en la marca de tiempo dada e incluye el número de registros en la relación en la versión.
195 196 197 198 |
# Archivo 'lib/mongoid/association/many.rb', línea 195 def cache_version( = :updated_at) @cache_version ||= {} @cache_version[] ||= compute_cache_version() end |
#crear(atributos = nil, tipo = nil, &bloque) ⇒ documento
Crea un nuevo documento en la asociación references many. Esto guardará el documento si el padre ha sido persistido.
42 43 44 45 46 47 48 49 50 |
# Archivo 'lib/mongoid/association/many.rb', línea 42 def Cree(atributos = nulo, tipo = nulo, &bloque) si atributos.is_a?(::Arreglo) atributos.map { |attrs| Cree(attrs, tipo, &bloque) } else doc = compilar(atributos, tipo, &bloque) _base.¿persistió? ? doc.guardar : raise_unsaved(doc) doc end end |
#create!(attributes = nil, type = nil, &block) ⇒ Documento
Crea un nuevo documento sobre la asociación de muchas referencias. Esto guardará el documento si el principal se ha almacenado y generará un error si la validación falla.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# Archivo 'lib/mongoid/association/many.rb', línea 65 def ¡crea!(atributos = nulo, tipo = nulo, &bloque) si atributos.is_a?(::Arreglo) atributos.map { |attrs| ¡crea!(attrs, tipo, &bloque) } else doc = compilar(atributos, tipo, &bloque) Arreglo(doc).cada hacer |doc| doc.intentar(:run_pending_callbacks) end _base.¿persistió? ? doc.save! : raise_unsaved(doc) doc end end |
#find_or_create_by(attrs = {}, tipo = nil, &bloque) ⇒ Documento
Encuentra el primer documento que cumpla las condiciones dadas o crea un nuevo documento con las condiciones que se proporcionaron.
@param [ Hash ] attrs Los atributos con los que buscar o crear. @param [Clase] tipo El tipo opcional de document a crear.
90 91 92 |
# Archivo 'lib/mongoid/association/many.rb', línea 90 def find_or_create_by(attrs = {}, tipo = nulo, &bloque) find_or(crear:, attrs, tipo, &bloque) end |
#find_or_create_by!(attrs = {}, type = nil, &block) ⇒ documento
Busque el primer documento dado las condiciones, o cree un nuevo documento con las condiciones proporcionadas. Esto generará un error si la validación falla.
106 107 108 |
# Archivo 'lib/mongoid/association/many.rb', línea 106 def find_or_create_by!(attrs = {}, tipo = nulo, &bloque) find_or(¡crear!, attrs, tipo, &bloque) end |
#find_or_initialize_by(attrs = {}, type = nil, &block) ⇒ Documento
Encuentra el primer Document dadas las condiciones, o instancia un nuevo documento con las condiciones proporcionadas.
120 121 122 |
# Archivo 'lib/mongoid/association/many.rb', línea 120 def find_or_initialize_by(attrs = {}, tipo = nulo, &bloque) find_or(compilar, attrs, tipo, &bloque) end |
#nil? ⇒ false
Este proxy nunca puede ser nulo.
130 131 132 |
# Archivo 'lib/mongoid/association/many.rb', línea 130 def nil? false end |
#respond_to?(nombre, include_private = false) ⇒ true | false
Dado que method_missing se anula, también deberíamos anular esto.
143 144 145 146 |
# Archivo 'lib/mongoid/association/many.rb', línea 143 def respond_to?(Nombre, incluir_privada = false) [].respond_to?(Nombre, incluir_privada) || klass.respond_to?(Nombre, incluir_privada) || super end |
#scoped ⇒ Criterios
Este es el acceso público a los criterios de la asociación.
154 155 156 |
# Archivo 'lib/mongoid/association/many.rb', línea 154 def delimitado criterios end |
#serializable_hash(options = {}) ⇒ Hash
Obtiene el document como un hash serializable, utilizado por los serializadores JSON y XML de ActiveModel. Esta anulación es solo para poder pasar las opciones :include y :except para obtener asociaciones en el hash.
172 173 174 |
# Archivo 'lib/mongoid/association/many.rb', línea 172 def serializable_hash( = {}) _target.map { |Documento| Documento.serializable_hash() } end |
#sin ámbito ⇒ Criterios
Obtén un criterio para los documentos incrustados sin que se aplique el alcance por defecto.
183 184 185 |
# Archivo 'lib/mongoid/association/many.rb', línea 183 def sin ámbito criterios.sin ámbito end |