动作缓存无法正常工作

时间:2009-06-21 02:58:01

标签: ruby-on-rails xml hpricot

我在我的rails应用程序中从twitter和flickr获取和操作XML。结果显示在每个页面上,解析在Hpricot和open-uri的Application Controller中处理。

这是我的第一个动作缓存实验,它似乎没有用。我使用WEBRick处于开发模式。在development.rb。

中将所有适当的设置为true

这是控制器中的内容:

  before_filter :twitter, :flickr
  caches_action :twitter, :flickr

/ tmp / cache中没有显示任何内容,很明显Hpricot在每次加载页面时都会这样做。

提前致谢。

1 个答案:

答案 0 :(得分:2)

默认缓存存储是用于操作和片段缓存的内存,因此tmp / cache中不会出现任何内容。您可以将其更改为file_store以进行调试。

我建议安装mongrel并在开发模式下使用它而不是webrick。它更快,并且比webrick提供更好的信息。

当缓存操作时,所有过滤器之前仍然会运行。

你正在做的是将你的twitter和flickr动作作为before_filter中的旧方法运行。这不会调用缓存。您应该查看片段缓存并将控制器更改为:

class SomeController
  before_filter :twitter, :flickr

  protected
  def twitter
    unless read_fragment('twitter')
      ... do stuff ...
    end
  end
end

#_twitter.erb
<% cache('twitter') do %>
  render the relevant stuff
<% end %>