Módulo: Mongoid::Criteria::Scopable

Incluído em:
Mongoid::Criteria
Definido em:
lib/mongoid/criteria/scopable.rb

Visão geral

Módulo Mixin incluído no Mongoid::Criteria que adiciona funcionalidades relacionadas a escopos de query padrão e escopos nomeados.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#apply_default_scope ➤ Critérios

Aplica o escopo padrão aos critérios.

Exemplos:

Aplique o escopo padrão.

criteria.apply_default_scope

Retorna:



15
16
17
18
19
20
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 15

def apply_default_scope
  classe.sem_default_scope fazer
    mesclar!(classe.default_scoping.Chame)
  end
  auto.scope_options = true, false
end

#apply_scope(scope) ➤ Critérios

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.

Aplica um escopo aos critérios atuais.

Este método não modifica o receptor, mas pode retornar um novo objeto ou o receptor, dependendo do argumento: se o argumento scope for nulo, o receptor será retornado sem modificação, caso contrário, um novo objeto de critérios será retornado.

Parâmetros:

  • escopo (Proc | Symbol | Criteria | nil)

    O escopo a ser aplicado.

Retorna:

  • (Critérios)

    Os critérios com o escopo aplicado.



34
35
36
37
38
39
40
41
42
43
44
45
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 34

def apply_scope(escopo)
  caso escopo
  quando Proc
    instance_exec(&escopo)
  quando Símbolo
    enviar(escopo)
  quando critério
    mesclar(escopo)
  mais
    auto
  end
end

#remove_scoping( other ) ➤ Critérios

Dado outros critérios, remova o escopo dos outros critérios desses critérios.

Exemplos:

Remova o escopo.

criteria.remove_scoping(other)

Parâmetros:

Retorna:

  • (Critérios)

    Os critérios com escopo removido.



56
57
58
59
60
61
62
63
64
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 56

def remove_scope(Outro)
  se Outro
    rejeitar_matching(Outro, :selector, :opções)
    Outro.inclusões.cada fazer |meta|
      inclusões.delete_one(meta)
    end
  end
  auto
end

#scoped(options = nil) ➤ Critérios

Força os critérios a serem analisados, a menos que esteja dentro de um bloco sem escopo.

Exemplos:

Forçar os critérios a serem definidos.

criteria.scoped(skip: 10)

Parâmetros:

  • opções (Hash) (padrão para: nil)

    Opções adicionais de query.

Retorna:



74
75
76
77
78
79
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 74

def com escopo(opções = nada)
  crit = clonar
  crit.opções.mesclar!(opções || {})
  crit.apply_default_scope se classe.default_scopeble? && !escopo?
  crit
end

#escopo?verdadeiro | false

Os critérios tiveram o escopo padrão aplicado?

Exemplos:

O escopo padrão é aplicado?

criteria.scoped?

Retorna:

  • (verdadeiro | falso)

    Se o escopo padrão for aplicado.



87
88
89
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 87

def escopo?
  !!(definido?(@scoped) ? @scoped : nada)
end

#scoping_options ➤ Array

Obtenha as opções de escopo dos critérios, como um par (com escopo, sem escopo).

Exemplos:

Obtenha as opções de escopo.

criteria.scoping_options

Retorna:

  • (Array)

    Com escopo e sem escopo.



123
124
125
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 123

def scope_options
  [ (definido?(@scoped) ? @scoped : nada), (definido?(@unscoped) ? @unscoped : nada) ]
end

#scoping_options=(opções) ➤ Array

Defina as opções de escopo dos critérios, como um par (com escopo, sem escopo).

Exemplos:

Defina as opções de escopo.

criteria.scoping_options = true, false

Parâmetros:

  • opções (Array)

    Com escopo e sem escopo.

Retorna:

  • (Array)

    As novas opções de escopo.



135
136
137
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 135

def scopeing_options=(opções)
  @scoped, @unscoped = opções
end

#sem escopoCritérios

Limpa todo o escopo dos critérios.

Exemplos:

Limpe todo o escopo dos critérios.

criteria.unscoped

Retorna:



97
98
99
100
101
102
103
104
105
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 97

def sem escopo
  crit = clonar
  a menos que sem escopo?
    crit.scope_options = false, true
    crit.seletor.Limpar
    crit.opções.Limpar
  end
  crit
end

#sem escopo?verdadeiro | false

Os critérios não têm escopo?

Exemplos:

Os critérios não têm escopo?

criteria.unscoped?

Retorna:

  • (verdadeiro | falso)

    Se os critérios forem forçados sem escopo.



113
114
115
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 113

def sem escopo?
  !!(definido?(@unscoped) ? @unscoped : nada)
end

#with_default_scope ➤ Critérios

Obtenha os critérios com o escopo padrão aplicado, se o escopo padrão puder ser aplicado. Casos em que não pode ocorrer: se estivermos em um bloco sem escopo, se o critério já tiver sido forçado sem escopo ou se o escopo padrão já tiver sido aplicado.

Exemplos:

Obtenha os critérios com o escopo padrão.

criteria.with_default_scope

Retorna:



148
149
150
151
152
# Arquivo 'lib/mongoid/criteria/scopable.rb', linha 148

def with_default_scope
  crit = clonar
  crit.apply_default_scope se classe.default_scopeble? && !sem escopo? && !escopo?
  crit
end