method

expires_in

expires_in(seconds, options = {})
public

Sets a HTTP 1.1 Cache-Control header. Defaults to issuing a private instruction, so that intermediate caches must not cache the response.

Examples:

expires_in 20.minutes
expires_in 3.hours, :public => true
expires_in 3.hours, 'max-stale' => 5.hours, :public => true

This method will overwrite an existing Cache-Control header. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more possibilities.

1Note

be aware that this writes to tmp/cache

concept47 ยท Apr 10, 20132 thanks

Its supposed to be http caching, but Rails will actually cache the response to whatever you specified as the cache store, as well, but only if you specify :public => true. The default is filestore so it will try to write to tmp/cache.

Only a problem if you don't have the proper permissions set, in that scenario your apache/nginx logs could fill up very quickly with "permission denied errors"

Full explanation is here http://blog.tonycode.com/archives/418