Módulo: Mongoid::Association::Referenced::WithPolymorphicCriteria Privado
- Incluido en:
- HasMany, HasOne::Buildable
- Definido en:
- lib/mongoid/association/referenced/with_polymorphic_criteria.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Implementa el comportamiento compartido 'with_polymorphic_criteria'.
Resumen del método de instancia colapsar
-
#con_criterio_polimórfico(criterios, base) ⇒ Mongoid::Criteria
privado
Si el receptor representa una asociación polimórfica, se aplican los criterios de búsqueda polimórficos al objeto ‘criteria` dado.
Detalles del método de instancia
#with_polymorphic_criterion(criterios, base) ⇒ Mongoid::Criteria
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Si el receptor representa una asociación polimórfica, se aplican los criterios de búsqueda polimórficos al objeto ‘criteria` dado.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# Archivo 'lib/mongoid/association/referenced/with_polymorphic_criteria.rb', línea 20 def con_criterio_polimórfico(criterios, base) si polimórfico? # 1. obtener el solución para la asociación inversa resolver = klass.reflect_on_association(como).resolver # 2. busque la lista de claves del solucionador, dada la base claves = resolver.claves_para(base) # 3. usar igualdad si sólo hay una clave, `in` si hay varias si claves.¿muchos? criterios.dónde(tipo => { :$in => claves }) else criterios.dónde(tipo => claves.primero) end else criterios end end |