Módulo: Mongoid::Association::Referenced::WithPolymorphicCriteria Private
- Incluído em:
- HasMany, HasOne::Buildable
- Definido em:
- lib/mongoid/association/referenced/with_polymorphic_criteria.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Implementa o comportamento compartilhado 'with_polymorphic_criteria'.
Recolhimento do Resumo do método de instância
-
#with_polymorphic_criterion(criteria, base) ➤ Mongoid::Criteria
privado
Se o receptor representar uma associação polimórfica, aplica os critérios de pesquisa polimórfica ao objeto'critérios' fornecido.
Detalhes do método de instância
#with_polymorphic_criterion(criteria, base) ➤ Mongoid::Criteria
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Se o receptor representar uma associação polimórfica, aplica os critérios de pesquisa polimórfica ao objeto'critérios' fornecido.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# Arquivo 'lib/mongoid/association/referenced/with_polymorphic_criteria.rb', linha 20 def with_polymorphic_criterion(critério, base) se polimórfico? # 1. obtenha o resolvedor para a associação inversa resolvedor = classe.mirror_on_association(como).resolvedor # 2. procure a lista de chaves do resolvedor, determinada base keys = resolvedor.chaves_para(base) # 3. usar igualdade se houver apenas uma chave, `in' se houver várias se keys.muitos? critério.ONDE(type => { :$in => keys }) mais critério.ONDE(type => keys.primeiro) end mais critério end end |