Кэширование фрагментов в Rails 3 - PullRequest
1 голос
/ 06 мая 2011

У меня есть часть, которая извлекает данные о погоде, используя драгоценный камень Барометр.Проблема в том, что каждый раз, когда страница загружается, драгоценный камень снова загружает фид погоды.Можно ли кешировать частичное использование фрагментированного кеширования, но иметь только ту кешированную версию, которая будет полезна, скажем, 3-4 часа?Таким образом, данные о погоде будут оставаться актуальными, и жемчужине не придется каждый раз вводить новые данные.

1 Ответ

6 голосов
/ 06 мая 2011

вспомогательная функция cache принимает 3 аргумента:

  def cache(name = {}, options = nil, &block)
    if controller.perform_caching
      safe_concat(fragment_for(name, options, &block))
    else
      yield
    end

    nil
  end

, если вы укажете ключ срока действия во втором аргументе, он будет передан в write_fragment и, в конечном итоге, в сам кэш.

Как это:

-cache "cache_path", :expires => 3.hours do
  =cached_fragment_code

Я рекомендую прочитать в ActionView::Helpers::CacheHelper для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...