Módulo: Mongoid::Association::Referenced::CounterCache::ClassMethods

Definido en:
lib/mongoid/association/referenced/counter_cache.rb

Colapso del resumen del método de instancia

Detalles del método de instancia

#decrement_counter(nombre_del_contador, id) ⇒ Objeto

Disminuye en uno el nombre del contador de las entradas que coincidan con el id. Este método se utiliza en las funciones de retorno de relaciones cuando counter_cache está habilitado

Ejemplos:

Disminuir el contador de comentarios

Post.decrement_counter(:comments_count, '50e0edd97c71c17ea9000001')

Parámetros:

  • nombre_del_contador ( Símbolo) -

    Nombre de caché de contador

  • ID. (Cadena) -

    El id del objeto al que se le decrementará el contador.



84
85
86
# Archivo 'lib/mongoid/association/referenced/counter_cache.rb', línea 84

def contador_decremento(nombre_del_contador, ID.)
  contadores_de_actualización(ID., nombre_del_contador.a_sym => -1)
end

#increment_counter(nombre_del_contador, id) ⇒ Objeto

Incrementa en uno el nombre del contador de las entradas que coinciden con el ID. Este método se utiliza en las devoluciones de llamadas de asociaciones cuando counter_cache está habilitado.

Ejemplos:

Incrementar el contador de comentarios

Post.increment_counter(:comments_count, '50e0edd97c71c17ea9000001')

Parámetros:

  • nombre_del_contador ( Símbolo) -

    Nombre de caché de contador

  • ID. (Cadena) -

    El id del objeto cuyo contador se incrementará.



71
72
73
# Archivo 'lib/mongoid/association/referenced/counter_cache.rb', línea 71

def contador_de_incrementos(nombre_del_contador, ID.)
  contadores_de_actualización(ID., nombre_del_contador.a_sym => 1)
end

#reset_counters(id, *counters) ⇒ objeto

Restablezca el contador dado mediante la consulta .count() desde la base de datos. Este método es útil si un contador se corrompió o se agregó uno nuevo a la colección.

Ejemplos:

Restablecer el caché del contador indicado

Post.reset_counters('50e0edd97c71c17ea9000001', :comments)

Parámetros:

  • ID. (Cadena) -

    El ID del objeto que se restablecerá.

  • *contadores (Symbol...)

    Uno o más cachés de contador para reiniciar.



39
40
41
42
43
44
45
46
# Archivo 'lib/mongoid/association/referenced/counter_cache.rb', línea 39

def restablecer_contadores(ID., *contadores)
  Documento = ID..is_a?(Documento) ? ID. : buscar(ID.)
  contadores.cada hacer |Nombre|
    relación_asociación = relaciones[Nombre]
    nombre_del_contador = relación_asociación.asociación inversa.nombre_de_columna_de_caché_de_contador
    Documento.update_attribute(nombre_del_contador, Documento.Enviar(Nombre).count)
  end
end

#update_counters(id, contadores) ⇒ Objeto

Actualiza los contadores dados según el factor de valor. Utiliza el comando atómico $inc.

Ejemplos:

Añade 5 al contador de comentarios y elimina 2 de los me gusta

counter.
Post.update_counters('50e0edd97c71c17ea9000001',
           :comments_count => 5, :likes_count => -2)

Parámetros:

  • ID. (Cadena) -

    El ID del objeto a actualizar.

  • contadores (Hash)


58
59
60
# Archivo 'lib/mongoid/association/referenced/counter_cache.rb', línea 58

def contadores_de_actualización(ID., contadores)
  donde(:_identificación => ID.).Inc(contadores)
end