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 es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.
Implementa el comportamiento compartido with_polymorphic_criteria.
Resumen del método de instancia colapsar
-
#con_criterio_polimórfico(criterio, base) ⇒ Mongoid::Criterio
privado
Si el receptor representa una asociación polimórfica, aplica los criterios de búsqueda polimórficos al objeto
criteriaproporcionado.
Detalles del método de instancia
#with_polymorphic_criterion(criterios, base) ⇒ Mongoid::Criteria
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Si el receptor representa una asociación polimórfica, aplica los criterios de búsqueda polimórficos al objeto criteria proporcionado.
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. consultar la lista de claves del resolvedor, dado 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 |