Ruby on Rails latest stable (v4.2.1) - 1 note - Class: ActionController::ConditionalGet
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.

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 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more possibilities.

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

Show source
Register or log in to add new notes.
April 10, 2013 - (v3.2.1 - v3.2.13)
2 thanks

be aware that this writes to tmp/cache

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