如何在控制器中查看“缓存执行”模拟?

时间:2012-11-12 06:38:03

标签: ruby-on-rails caching

我想在我的视图中包裹cache

- cache_wrap(cache_key, cache_options) do
  %div cached block

使用cache_wrap,如:

helper_method :cache_wrap
def cache_wrap(key, options)
  if key.empty?
    yield
  else
    Rails.cache.fetch(key, options) do
      yield
    end
  end

  nil
end

我想在控制器中使用cache_wrap,而不是在helper中。我能这样做吗? 我想在控制器中配置cache_wrap逻辑,因为这个逻辑与生活在控制器中的另一个代码有关。

1 个答案:

答案 0 :(得分:0)

您的示例应该按预期工作。

但可能不是将cache_wrap放入控制器,而是应该使用相同的helper_method挂钩将控制器逻辑暴露给视图层。

这样,您可以保持控制器清洁,同时仍然按计划使用功能。