【发布时间】:2011-04-05 21:00:50
【问题描述】:
我需要向另一个 Web 服务发出昂贵(耗时)的外部请求,我想缓存它。所以我尝试使用这个idiom,将以下内容放入应用程序控制器:
def get_listings
cache(:get_listings!)
end
def get_listings!
return Hpricot.XML(open(xml_feed))
end
当我在控制器中调用 get_listings! 时,一切都很好,但是当我调用 get_listings 时,Rails 抱怨没有给出块。当我查看该方法时,我发现它确实需要一个块,而且看起来该方法仅用于视图?所以我猜虽然没有说明,但这个例子只是伪代码。
所以我的问题是,我如何缓存这样的东西?我尝试了各种其他方法,但无法弄清楚。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby caching idioms memoization