Pergunta

Cada exemplo de caches_action Eu vi parece:

caches_action, :expires_in => 5.minutes

mas eu gostaria de definir expires_in com base no tempo de expiração de um objeto usado na ação.Existe alguma maneira de fazer referência a esse objeto, quando a configuração do expires_in desde que o objeto em questão é baseado no params enviado para a ação?

Eu tentei usar

caches_action, :expires_in => Object.find(params[:id])

mas infelizmente isso não vai me deixar de referência params lá.Sugestões de boas-vindas!

Foi útil?

Solução

Parece que você precisa usar um Proc, que pode passar os parâmetros do controlador.Aqui está um exemplo

caches_action :show, cache_path: Proc.new {|controller_instance| "some_cache_path_that_is_uniq/#{controller_instance.params[:id]}"}

Outras dicas

O principal ponto de ação cache é evitar ações a ser executado cada vez que um novo pedido está chegando.A menos que explicitamente definidos parâmetros não são levados em consideração.

Se você deseja armazenar em cache baseado em instâncias gostaria de sugerir a realização de Condicional Fica.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top