Módulo: Mongoid::Cacheable

Ampliado por:
ActiveSupport::Concern
Incluido en:
Compuesto
Definido en:
lib/mongoid/cacheable.rb

Overview

Encapsula el comportamiento relacionado con el almacenamiento en caché.

Resumen del método de instancia colapsar

Detalles del método de instancia

#cache_keyString

Imprime la clave de caché. Esto añadirá diferentes valores en el nombre del modelo plural.

Si se trata de un nuevo registro, se añadirá /new. Si cache_version no es nulo, se añadirá /id. Si updated_at no es nulo, se añadirá /id-updated_at.to_formatted_s(cache_timestamp_format). De lo contrario - añade /id

Esto suele llamarse dentro de un bloque caché()

Ejemplos:

Devuelve la clave de caché

document.cache_key

Devuelve:

  • (string)

    la clave caché generada



27
28
29
30
31
32
33
# Archivo 'lib/mongoid/cacheable.rb', línea 27

def cache_key
  return "#{model_key}/new" si nuevo_registro?
  return "#{model_key}/#{_id}" si cache_version
  return "#{model_key}/#{_id}-#{updated_at.utc.to_formatted_s(cache_timestamp_format)}" si intentar(:updated_at)

  "#{model_key}/#{_id}"
end

#cache_versionString | nil

Devuelve la versión de caché para este model. De forma predeterminada, devuelve el campo updated_at (si está presente) formateado como una string, o nil si el model no tiene el campo updated_at. Los modelos con diferentes necesidades pueden anular este método para adaptarlo a su comportamiento deseado.

POR HACER: podemos probar esto usando un MemoryStore, poniendo algo en él, luego actualizando la marca de tiempo en el registro e intentando leer el valor del almacén de memoria. No debería encontrarlo porque la versión ha cambiado.

Devuelve:

  • (String | nil)

    el valor de la versión de la caché



46
47
48
49
50
# Archivo 'lib/mongoid/cacheable.rb', línea 46

def cache_version
  return a menos que tiene_atributo?('updated_at') && updated_at.¿presente?

  updated_at.UTC.to_formatted_s(formato_de_marca_temporal_de_caché)
end