What's the general best practice to deal with something like this..
##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>
The get_from_memcache return a @post object from a cache that basically doesn't expire, because once a post is created, it's body, category, created at etc remains the same.
However, in my view I do call another method favorites_count which collects the posts's favorites count from memcache and this favorite keeps changing.
This is a simplication of course, there are a few fields that do change.
Now If I were to implement some sort of http caching then I would need to do a fresh_when or stale? in my controller method (show), which would essentially not render the views and hence the updated favorites count, unless I use a etag that encompassed the favorite count and other dynamic fields, in which case it kinda defeats the purpose because those fields change regularly.
How do I manage this situation? So I can take advantage of a proxy but keep certain dynamic fields in the page updated? One things I can think of is ajax calls to other controller actions to update those fields after page load, but that might ugly.
Any other recommendations?