我在我的rails应用程序中从twitter和flickr获取和操作XML。结果显示在每个页面上,解析在Hpricot和open-uri的Application Controller中处理。
这是我的第一个动作缓存实验,它似乎没有用。我使用WEBRick处于开发模式。在development.rb。
中将所有适当的设置为true这是控制器中的内容:
before_filter :twitter, :flickr
caches_action :twitter, :flickr
/ tmp / cache中没有显示任何内容,很明显Hpricot在每次加载页面时都会这样做。
提前致谢。
答案 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 %>