Ruby on Rails:清除caching页面
我有一个在开发环境中caching页面的RoR应用程序(ruby v1.8.7; rails v2.3.5)。 这不是一个问题,但caching页面的元素是不正确的。
我还没有对development.rb文件进行任何更改,我也没有明确地向控制器添加任何caching命令。
我已经尝试清除浏览器(OSX上的Firefox 3.5)Cookie和页面caching(本地主机)。 我也重新启动了Mongrel。 似乎没有任何帮助。
我错过了什么?
在development.rb中的这一行确保caching不会发生。
 config.action_controller.perform_caching = false 
您可以使用清除Railscaching
 Rails.cache.clear 
这就是说 – 我不相信这是一个caching问题。 你是否对页面进行了更改,而没有看到它们反映出来? 你可能没有看那个网页的真实版本? 我做了一次(脸红)。
更新:
您可以在控制台中调用该命令。 你确定你在开发中运行应用程序吗?
唯一的select是您要呈现的页面不是正在呈现的页面。
如果你看服务器输出,你应该能看到渲染命令,当页面呈现类似于这样的:
 Rendered shared_partials/_latest_featured_video (31.9ms) Rendered shared_partials/_s_invite_friends (2.9ms) Rendered layouts/_sidebar (2002.1ms) Rendered layouts/_footer (2.8ms) Rendered layouts/_busy_indicator (0.6ms) 
  rake tmp:cache:clear可能是你在找什么。 
我能够通过清理我的资产caching来解决这个问题:
 $ rake assets:clean 
在/ public中检查你的页面的静态版本,如果有的话,删除它。 当Rails 3.xcaching页面时,它会在公用文件夹中保留一个静态版本,并在用户点击您的网站时加载。 即使您清除了caching后,这仍将保持不变。
如果您正在执行片段caching ,则可以通过更新caching键来手动中断caching,如下所示:
版本#1
 <% cache ['cool_name_for_cache_key', 'v1'] do %> 
版本#2
 <% cache ['cool_name_for_cache_key', 'v2'] do %> 
或者,您可以根据非静态对象(如ActiveRecord对象)的状态自动重置高速caching,如下所示:
 <% cache @user_object do %> 
有了这个方法,任何时候用户对象被更新,caching将自动被重置。