Módulo: Mongoid::Association::Referenced::WithPolymorphicCriteria Privado
- Incluido en:
- TieneMuchos, TieneUno::Construible
- Definido en:
- lib/mongoid/asociación/referenciada/con_criterios_polimórficos.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'.
Colapso del resumen del método de instancia
-
#con_criterio_polimórfico(criterios, base) ⇒ Mongoid::Criteria
privada
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
#con_criterio_polimórfico(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 solucionador para la asociación inversa resolver = klass.reflexionar sobre la asociación(como).resolver # 2. busque la lista de claves del solucionador, dada la base claves = resolver.claves_para(base) # 3. use igualdad si solo hay una clave, `in` si hay varias Si claves.¿muchos? criterios.donde(tipo => { :$en => claves }) else criterios.donde(tipo => claves.primera) end else criterios end end |