Rails缓存操作不会过期

时间:2012-01-25 05:33:35

标签: ruby-on-rails-3 heroku memcached

我在Heroku上尝试在我的Rails应用程序中实现缓存,但是我遇到了一些我不理解的问题。我认为在阅读Rails Guide和Heroku关于缓存策略的文档之后会很容易,但显然做错了。

问题1:行动观点似乎没有到期 问题2:当我使用时:layout => false,我的管理员和应用程序布局都被使用(试图只获取应用程序布局)

对这位新手的任何帮助都会非常感激!

production.rb(每个heroku文档也安装了dalli)

config.cache_store = :dalli_store
config.action_controller.perform_caching = true (added after reading http://bit.ly/oRKub1)

控制器

layout 'admin'
caches_action :show, :layout => false

def show
  render :layout => 'application'
end

def update
  expire_action :action => :show
end

我尝试通过更改产品来测试过期,但show视图不会过期。因此,当我查看产品的编辑视图时,我没有缓存,我可以看到更改已保存(只是在标题中添加了一个单词),但是当我查看show时,它仍然具有旧信息。

3 个答案:

答案 0 :(得分:0)

如果您使用aspen / bamboo堆栈,我不认为缓存可以在rails中运行,因为应用程序面向清漆,它为您提供缓存

答案 1 :(得分:0)

我不知道“caches_action”,但您可以尝试手动过期所有缓存,看看会发生什么。

def update
  # expire_action :action => :show
  Rails.cache.clear
end

答案 2 :(得分:0)

如果有任何缓存问题,this链接将帮助您找到解决方案。 您可以通过heroku控制台直接连接到dalli/memcached客户端,然后使用flush_all刷新缓存。

或参考此google-groups link