Does Rails 3 provide time based caching?

Hi guys,

I need a timebased caching of certain pages. Cache for certain page should be cleared each 15 minutes. Is that possible?

In Caching with Rails: An Overview — Ruby on Rails Guides manual I see that there is only manual cache clear methods, such as expire_page or expire_action.

Regards, Alexey

I don't think Rails provides time based caching. I also do not think it's needed. What are you trying to accomplish?

Lets say you have a page with list of products that you want to cache. The cache *only* needs to be updated if one of the products changes. Caching the page for an arbitrary amount of time is unnecessary.

If you *really* need a time based cache, you could just use a cache, then set the expire action as a cron job that runs every 15 minutes.

But really, infinite caching with proper expiration is the way to go.

This depends on the cache store you use. The memcached store can expire cache items after a certain time.

See point 4 here:

http://guides.rubyonrails.org/caching_with_rails.html#cache-stores