method

expires_in

expires_in(seconds, options = {})
public

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

expires_in 20.minutes
expires_in 3.hours, public: true
expires_in 3.hours, public: true, must_revalidate: true

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

HTTP Cache-Control Extensions for Stale Content. See tools.ietf.org/html/rfc5861 It helps to cache an asset and serve it while is being revalidated and/or returning with an error.

expires_in 3.hours, public: true, stale_while_revalidate: 60.seconds
expires_in 3.hours, public: true, stale_while_revalidate: 60.seconds, stale_if_error: 5.minutes

The method will also ensure an HTTP Date header for client compatibility.

1Note

This doesn't write files

reconbot ยท May 8, 2015

This doesn't write files, at least not anymore. Since at least rails 4 Rack::Cache isn't included by default. In any case this method only ever set headers on the response.