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 do 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
criteriafornecido.
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 criteria 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 |