Rails - melhor maneira de implementar cache de fragmentos opcionais para fins de teste
-
23-09-2019 - |
Pergunta
Estou usando muito o cache de fragmentos e é essencial para mim para um bom desempenho. No entanto, devido à complexidade do cache que estou usando, preciso oferecer aos meus testadores, uma maneira de desativar/ativar o cache como uma variável de sessão. (Apenas com base no usuário)
Eu estava pensando em implementar um cache_disabled? Método, e agora verifico seu valor em todos os lugares que uso o cache. Agora, estou preso à seguinte peça de cache e não consigo descobrir como integrar bem esta verificação:
<% cache(@cache_key_for_consultContent) do %>
<div id="consult">
<%= render :partial => 'LOTS_OF_CONTENT' %>
</div>
<% end %>
Preciso que o conteúdo seja chamado quando o cache está desativado ou o conteúdo ainda não está em cache.
Obrigado pela sua criatividade! (Por favor, mantenha -o seco)
Solução
Em seu ajudante de aplicativo, você pode tentar:
def optional_cache(key, &block)
cache(key, &block) unless session[:disable_caching]
end
Em seguida, substitua suas chamadas para cache () por opcional_cache ().