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

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

Resumen del método de instancia colapsar

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:

  • counter_name (Símbolo)

    Nombre de caché de contador

  • ID (string)

    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 decrement_counter(counter_name, ID)
  actualizar_contadores(ID, counter_name.to_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:

  • counter_name (Símbolo)

    Nombre de caché de contador

  • ID (string)

    El id del objeto que tendrá su contador incrementado.



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

def incrementar_conteo(counter_name, ID)
  actualizar_contadores(ID, counter_name.to_sym => 1)
end

#reset_counters(id, *counters) ⇒ objeto

Restablezca el contador dado usando el .count() query desde la base de datos. Este método es útil en caso de que un contador esté dañado o se haya añadido un nuevo contador a la colección.

Ejemplos:

Restablece la caché de contador indicada

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

Parámetros:

  • ID (string)

    El ID del objeto que se restablecerá.

  • *contadores (Symbol...)

    Una o más memorias caché de contador que se deben restablecer.



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

def reset_counters(ID, *contadores)
  Documento = ID.is_a?(Documento) ? ID : buscar(ID)
  contadores.cada hacer |Nombre|
    relation_association = relaciones[Nombre]
    counter_name = relation_association.asociación inversa.nombre_columna_cache_conteo
    Documento.update_attribute(counter_name, 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 (string)

    El ID del objeto que se va a actualizar.

  • contadores (Hash)


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

def actualizar_contadores(ID, contadores)
  dónde(:_identificación => ID).Inc(contadores)
end