片段缓存在Rails 3中

时间:2011-05-06 01:34:32

标签: ruby-on-rails ruby-on-rails-3 caching

我有一部分使用Barometer宝石获取天气数据。问题是,每次加载页面时,宝石都会再次拉入天气预报。是否可以使用片段缓存来缓存部分缓存,但只有那个缓存版本可以说3-4个小时?这样,天气数据将保持最新,宝石不必每次都提取全新的数据。

1 个答案:

答案 0 :(得分:6)

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以获取更多信息。