I'm working on this now. I have two approaches:
1. (Implemented) - If you control the URLs, put the timestamp of the
resource in the URL linking to it. eg url_for(:product =>
product, :timestamp => product.modified_at.to_i)
2. Instead of using page caching, have Apache cache, use mod_cache.
Then, set the expires header very short - Apache will ask Rails for
the resource. But don't return it if it's still okay - see
(I have the headers in #2 working but have not turned on mod_cache
Let me know how your experience goes.