Question

Un exemple de chaque caches_action J'ai vu ressemble:

caches_action, :expires_in => 5.minutes

mais je tiens à définir expires_in basé sur le délai d'expiration d'un objet utilisé dans l'action.Est-il un moyen de faire référence à l'objet lors de la configuration de expires_in puisque l'objet en question est basé sur params envoyé à l'action?

J'ai essayé d'utiliser

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

mais, hélas, il ne me laisse pas de référence params là.Des Suggestions sont les bienvenues!

Était-ce utile?

La solution

On dirait que vous devez utiliser un Proc qui peut passer à travers les paramètres du contrôleur.Voici un exemple

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

Autres conseils

Le point principal de l'action la mise en cache est d'éviter des actions en cours d'exécution chaque fois qu'une nouvelle demande est à venir dans le.Sauf si explicitement défini les paramètres ne sont pas pris en considération.

Si vous voulez cache basé sur les cas je vous le conseille Conditionnel Obtient.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top