Módulo: Mongoid::Criteria::Scopable
- Incluido en:
- Mongoid::Criteria
- Definido en:
- lib/mongoid/criteria/scopable.rb
Overview
Módulo mixin incluido en Mongoid::Criteria que añade funcionalidad relacionada con ámbitos de query por defecto y ámbitos nombrados.
Resumen del método de instancia colapsar
-
#apply_default_scope ⇒ Criteria
Aplica el ámbito por defecto a los criterios.
-
#apply_scope(scope) ⇒ Criterio
privado
Aplica un alcance al criterio actual.
-
#remove_scoping(other) ⇒ Criteria
Dado otro criterio, remover el alcance del otro criterio de este criterio.
-
#scoped(options = nil) ⇒ Criterio
Obliga a que los criterios estén acotados, a menos que se encuentren dentro de un bloque sin restricciones.
-
#¿scope? ⇒ true | false
¿Se han aplicado los criterios al alcance por defecto?
-
#scoping_options ⇒ arreglo
Obtener las opciones de alcance de los criterios, como un par (limitado, ilimitado).
-
#scoping_options=(opciones) ⇒ arreglo
Establece las opciones de alcance de los criterios, como un par (con alcance, sin alcance).
-
#sin ámbito ⇒ Criterios
Limpia todo el alcance de los criterios.
-
#sin alcance? ⇒ verdadero | falso
¿El criterio no está incluido en un ámbito?.
-
#with_default_scope ⇒ Criterios
Obten los criterios con el alcance por defecto aplicado, si el alcance por defecto puede aplicarse.
Detalles del método de instancia
#apply_default_scope ⇒ Criteria
Aplica el ámbito por defecto a los criterios.
15 16 17 18 19 20 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 15 def apply_default_scope klass.sin_ámbito_predeterminado hacer ¡Actualizar!(klass.scoping por defecto.llamar) end sí mismo. = true, false end |
#apply_scope(scope) ⇒ Criterios
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.
Aplica un alcance al criterio actual.
Este método no modifica el receptor, pero puede devolver un nuevo objeto o el receptor dependiendo del argumento: si el argumento scope es nil, el receptor se devuelve sin modificación, de lo contrario se devuelve un nuevo objeto de criterios.
34 35 36 37 38 39 40 41 42 43 44 45 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 34 def apply_scope(Alcance) caso Alcance cuando Proc instancia_exec(&Alcance) cuando Símbolo enviar(Alcance) cuando Criterios fusionar(Alcance) else sí mismo end end |
#remove_scoping(otro) ⇒ Criterios
Dado otro criterio, remover el alcance del otro criterio de este criterio.
56 57 58 59 60 61 62 63 64 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 56 def remove_scoping(Otros) si Otros Rechazar_coincidencia(Otros, Selector:, :options) Otros.inclusiones.cada hacer || inclusiones.delete_one() end end sí mismo end |
#con alcance(opciones = nulo) ⇒ Criterios
Obliga a que los criterios estén acotados, a menos que se encuentren dentro de un bloque sin restricciones.
74 75 76 77 78 79 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 74 def delimitado( = nulo) crit = clonar crit..¡Actualizar!( || {}) crit.apply_default_scope si klass.¿por defecto_limitable? && !¿con alcance? crit end |
#¿scoped? ⇒ true | false
¿Se ha aplicado el alcance por defecto a los criterios?
87 88 89 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 87 def ¿con alcance? !!(¿definido?(@scoped) ? @scoped : nulo) end |
#scoping_options ⇒ arreglo
Obtener las opciones de alcance de los criterios, como un par (limitado, ilimitado).
123 124 125 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 123 def [ (¿definido?(@scoped) ? @scoped : nulo), (¿definido?(@unscoped) ? @unscoped : nulo) ] end |
#scoping_options=(options) ⇒ Array
Establece las opciones de alcance de los criterios, como un par (con alcance, sin alcance).
135 136 137 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 135 def () @scoped, @unscoped = end |
#sin ámbito ⇒ Criterios
Limpia todo el alcance de los criterios.
97 98 99 100 101 102 103 104 105 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 97 def sin ámbito crit = clonar a menos que ¿sin alcance? crit. = false, true crit.selector.borrar crit..borrar end crit end |
#¿sin ámbito? ⇒ verdadero | falso
¿El criterio no tiene alcance?
113 114 115 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 113 def ¿sin alcance? !!(¿definido?(@unscoped) ? @unscoped : nulo) end |
#with_default_scope ⇒ Criterios
Obtener los criterios con el ámbito por defecto aplicado, si el ámbito por defecto es capaz de aplicarse. Los casos en los que no se puede son: Si estamos en un bloque no delimitado, si el criterio ya está forzado a ser no delimitado o si el ámbito por defecto ya se ha aplicado.
148 149 150 151 152 |
# Archivo 'lib/mongoid/criteria/scopable.rb', línea 148 def con_ámbito_predeterminado crit = clonar crit.apply_default_scope si klass.¿por defecto_limitable? && !¿sin alcance? && !¿con alcance? crit end |