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 .
Вы можете прочитать больше в официальной документации.