Módulo: Mongoid::Cacheable

Estendido por:
ActiveSupport::Concern
Incluído em:
Componível
Definido em:
lib/mongoid/cacheable.rb

Visão geral

Encapsula o comportamento em torno do cache.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#cache_key ➤ string

Imprima a chave de cache. Isso anexará valores diferentes ao nome do modelo plural.

Se new_record? - adicionará /new Non-nil cache_version? - anexar /ID Non-nil updated_at - anexar /ID-updated_at.to_formatted_s(cache_timestamp_format) Caso contrário - acrescente /ID

Isso geralmente é chamado dentro de um bloco cache ()

Exemplos:

Retorna a chave de cache

document.cache_key

Retorna:

  • (string)

    a chave de cache gerada



27
28
29
30
31
32
33
# Arquivo 'lib/mongoid/cacheable.rb', linha 27

def cache_key
  Método "#{model_key}/new" se new_record?
  Método "#{model_key}/#{_id}" se cache_version
  Método "#{model_key}/#{_id}-#{updated_at.utc.to_formatted_s(cache_timestamp_format)}" se tentar(:updated_at)

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

#cache_versionstring | nada

Retorne a versão do cache para este modelo. Por padrão, ele retorna o campo updated_at (se presente) formatado como uma string ou nil se o modelo não tiver um campo Updated_at . Modelos com necessidades diferentes podem substituir este método para se adequar ao comportamento desejado.

TODO: podemos testar isso usando um MemoryStore, colocando algo nele, atualizando o carimbo de data/hora no registro e tentando ler o valor do armazenamento de memória. Ele não deve encontrá-lo, porque a versão mudou.

Retorna:

  • (string | nil)

    o valor da versão do cache



46
47
48
49
50
# Arquivo 'lib/mongoid/cacheable.rb', linha 46

def cache_version
  Método a menos que has_attribute?('updated_at') && updated_at.presente?

  updated_at.utc.to_formatted_s(cache_timestamp_format)
end