rails3 caching: expire_action с параметрами, кэшированными caches_action(GET)

Я работаю над функцией поиска, которая при наборе чего-либо делает ajax-вызов, чтобы получить результаты. Я хочу кэшировать поисковое действие с поисковыми ключевыми словами в memory_cache, поэтому я делаю это так:

# caches_action with GET parameters

caches_action :search_posts, :cache_path => Proc.new { |c| c.params }

Мой вопрос, как я могу закончить действие с параметрами тоже? Есть ли другой способ заставить мою функцию работать?

1 ответ

Решение

У вас есть несколько вариантов истечения срока действия такого рода кеша.

Первый (более простой) - добавить опцию: expires_in в оператор caches_action - например:

caches_action :search_posts, :cache_path => Proc.new { |c| c.params }, :expires_in => 16.hours.to_i

Это автоматически истечет этот ключ через некоторое время.

Или вы можете истечь этот кеш, используя метод expire_action из контроллера. Это должно быть как:

expire_action :action => 'posts', :q => 'query'

если вы запросили эту страницу с одним параметром q=query .

Вы можете прочитать больше в официальной документации.

Другие вопросы по тегам