Conjunto de caches_action, :expires_in => dinámicamente
-
15-11-2019 - |
Pregunta
Cada ejemplo de caches_action
He visto se parece a:
caches_action, :expires_in => 5.minutes
pero me gustaría poner expires_in
basado en el tiempo de caducidad de un objeto que se utiliza en la acción.Hay alguna forma de hacer referencia a ese objeto cuando la configuración de expires_in
ya que el objeto en cuestión se basa en params
enviado a la acción?
He intentado utilizar
caches_action, :expires_in => Object.find(params[:id])
pero por desgracia no me deja de referencia de parámetros de allí.Sugerencias bienvenidos!
Solución
Parece que usted necesita para utilizar un Proc que puede llegar a pasar los parámetros del controlador.Aquí es un ejemplo
caches_action :show, cache_path: Proc.new {|controller_instance| "some_cache_path_that_is_uniq/#{controller_instance.params[:id]}"}
Otros consejos
El principal punto de acción de la caché para evitar acciones que se ejecutan cada vez que una nueva solicitud entrante.A menos que se definen explícitamente los parámetros no son tomados en consideración.
Si desea almacenar en caché basado en instancias sugeriría que hicieran Condicional Obtiene.