Módulo: Mongoid::Scopable::ClassMethods
- Definido en:
- lib/mongoid/scopable.rb
Resumen del método de instancia colapsar
-
#default_scopable? ⇒ verdadero | falso
¿Se puede aplicar el alcance por defecto a la clase?
-
#default_scope(value = nil, &block) ⇒ Proc
Añadir un ámbito por defecto al modelo.
-
#queryable ⇒ Criteria
privado
Obtén una consulta, ya sea la última en la pila de ámbito o una nueva.
-
#scope(name, value, &block) ⇒ Object
Crear un alcance que pueda ser accedido desde el nivel de clase o encadenado a criterios mediante el nombre proporcionado.
-
#scoped(options = nil) ⇒ Criterio
Obtener un criterio para el documento con alcance normal.
-
#scopes ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en las clases antecesoras.
-
#sin alcance ⇒ Criterio | Objeto
Obtener los criterios sin tener en cuenta ningún alcance.
-
#con_default_scope ⇒ Criterios (también: #criteria)
Obtener un criterio con el alcance por defecto aplicado, si es posible.
-
#con_scope(criterios) ⇒ Criterios
Se añaden los criterios proporcionados a la pila de alcance y se remueven después de que se devuelva el bloque proporcionado.
-
#without_default_scope ⇒ Object
Execute el bloque sin aplicar el scope por defecto.
Detalles del método de instancia
#default_scopable? ⇒ verdadero | falso
¿Puede la clase tener aplicado el ámbito por defecto?
90 91 92 |
# Archivo 'lib/mongoid/scopable.rb', línea 90 def ¿por defecto_limitable? default_scoping? && !Con hilo.sin_ámbito_predeterminado?(sí mismo) end |
#default_scope(value = nil, &block) ⇒ Proc
Agregar un ámbito por defecto al modelo. Este ámbito se aplicará a todos los criterios a menos que se especifique #unscopeado.
78 79 80 81 82 |
# Archivo 'lib/mongoid/scopable.rb', línea 78 def default_scope(Valor = nulo, &bloque) Valor = proc(&bloque) si ¿block_given? comprobar:validez_del_ámbito(Valor) sí mismo.scoping por defecto = process_default_scope(Valor) end |
#queryable ⇒ Criteria
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.
Obtén una consulta, ya sea la última en la pila de ámbito o una nueva.
102 103 104 105 106 |
# Archivo 'lib/mongoid/scopable.rb', línea 102 def consultable crit = Con hilo.current_scope(sí mismo) || Criterios.Nuevo(sí mismo) crit. = true si crit.klass. && !crit.klass.¿cíclico? crit end |
#scope(name, value, &block) ⇒ Object
Crear un alcance que pueda ser accedido desde el nivel de clase o encadenado a criterios mediante el nombre proporcionado.
127 128 129 130 131 132 133 134 135 136 |
# Archivo 'lib/mongoid/scopable.rb', línea 127 def Alcance(Nombre, Valor, &bloque) normalizado = Nombre.to_sym comprobar:validez_del_ámbito(Valor) check_scope_name(normalizado) _declared_scopes[normalizado] = { alcance: Valor, extensión: Module.Nuevo(&bloque) } define_scope_method(normalizado) end |
#con alcance(opciones = nulo) ⇒ Criterios
Esto obligará a que se aplique el ámbito por defecto.
Obtener un criterio para el documento con alcance normal.
153 154 155 |
# Archivo 'lib/mongoid/scopable.rb', línea 153 def delimitado( = nulo) consultable.delimitado() end |
#scopes ⇒ Hash
Devuelve un hash de todos los ámbitos definidos para esta clase, incluidos los ámbitos definidos en las clases antecesoras.
48 49 50 51 52 53 54 |
# Archivo 'lib/mongoid/scopable.rb', línea 48 def alcances defined_scopes = {} ancestros.reverse_each hacer |klass| defined_scopes.¡Actualizar!(klass._declared_scopes) si klass.respond_to?(scopes_declaradas) end defined_scopes.freeze end |
#sin ámbito ⇒ Criterios | Objeto
Esto obligará a eliminar tanto el ámbito por defecto como cualquier ámbito aplicado mediante .with_scope.
Obtener los criterios sin tener en cuenta ningún alcance.
172 173 174 175 176 177 178 179 180 181 182 |
# Archivo 'lib/mongoid/scopable.rb', línea 172 def sin ámbito si ¿block_given? sin_ámbito_predeterminado hacer with_scope(nulo) hacer rendimiento(sí mismo) end end else consultable.sin ámbito end end |
#with_default_scope ⇒ Criterios También conocido como: criterios
Obtener un criterio con el alcance por defecto aplicado, si es posible.
190 191 192 |
# Archivo 'lib/mongoid/scopable.rb', línea 190 def con_ámbito_predeterminado consultable.con_ámbito_predeterminado end |
#with_scope(criteria) ⇒ Criterios
Se añaden los criterios proporcionados a la pila de alcance y se remueven después de que se devuelva el bloque proporcionado.
204 205 206 207 208 209 210 211 212 |
# Archivo 'lib/mongoid/scopable.rb', línea 204 def with_scope(criterios) anterior = Con hilo.current_scope(sí mismo) Con hilo.set_current_scope(criterios, sí mismo) begin rendimiento criterios asegurar Con hilo.set_current_scope(anterior, sí mismo) end end |
#without_default_scope ⇒ Object
Execute el bloque sin aplicar el scope por defecto.
222 223 224 225 226 227 |
# Archivo 'lib/mongoid/scopable.rb', línea 222 def sin_ámbito_predeterminado Con hilo.begin_without_default_scope(sí mismo) rendimiento asegurar Con hilo.salir_sin_ámbito_predeterminado(sí mismo) end |