0

我在我的 rails 应用程序中从 twitter 和 flickr 获取和操作 XML。结果出现在每个页面上,解析在应用程序控制器中使用 Hpricot 和 open-uri 处理。

这是我对动作缓存的第一次实验,它似乎不起作用。我使用 WEBRick 处于开发模式。在 development.rb 中所有合适的东西都设置为 true。

这是控制器中的内容:

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

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

提前致谢。

4

1 回答 1

2

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

我建议 gem 安装 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 %>
于 2009-06-21T03:09:02.153 回答