expires_in
expires_in(seconds, options = {})Sets the `Cache-Control` header, overwriting existing directives. This method will also ensure an HTTP `Date` header for client compatibility.
Defaults to issuing the `private` directive, so that intermediate caches must not cache the response.
#### Options
`:public` : If true, replaces the default `private` directive with the `public`
directive.
`:must_revalidate` : If true, adds the `must-revalidate` directive.
`:stale_while_revalidate` : Sets the value of the `stale-while-revalidate` directive.
`:stale_if_error` : Sets the value of the `stale-if-error` directive.
`:immutable` : If true, adds the `immutable` directive.
Any additional key-value pairs are concatenated as directives. For a list of supported `Cache-Control` directives, see the [article on MDN](developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control).
#### Examples
expires_in 10.minutes # => Cache-Control: max-age=600, private expires_in 10.minutes, public: true # => Cache-Control: max-age=600, public expires_in 10.minutes, public: true, must_revalidate: true # => Cache-Control: max-age=600, public, must-revalidate expires_in 1.hour, stale_while_revalidate: 60.seconds # => Cache-Control: max-age=3600, private, stale-while-revalidate=60 expires_in 1.hour, stale_if_error: 5.minutes # => Cache-Control: max-age=3600, private, stale-if-error=300 expires_in 1.hour, public: true, "s-maxage": 3.hours, "no-transform": true # => Cache-Control: max-age=3600, public, s-maxage=10800, no-transform=true
1Note
This doesn't write files
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.