处理这样的事情的一般最佳实践是什么..
##Post controller
def show
@post = get_from_memcache
end
##show.html.erb
<div><%= post.body%></div>
<div><%= post.created_at%></div>
<div><%= post.category%></div>
<div><%= Post.favorites_count%></div>
get_from_memcache 从基本上不会过期的缓存中返回一个@post 对象,因为一旦创建了帖子,它的正文、类别、创建时间等都保持不变。
但是,在我看来,我确实调用了另一种方法 favorites_count,它从 memcache 中收集帖子的收藏夹计数,并且这个收藏夹不断变化。
当然,这是一个简化,有一些领域确实发生了变化。
现在如果我要实现某种http缓存,那么我需要做一个fresh_when还是stale?在我的控制器方法(显示)中,它基本上不会呈现视图,因此不会呈现更新的收藏夹计数,除非我使用包含收藏夹计数和其他动态字段的 etag,在这种情况下,它有点违背目的,因为这些字段会定期更改.
我该如何处理这种情况?所以我可以利用代理但保持页面中的某些动态字段更新?我能想到的一件事是 ajax 调用其他控制器操作以在页面加载后更新这些字段,但这可能很难看。
还有其他建议吗?