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.
Any additional key-value pairs are concatenated as directives. For a list of supported Cache-Control directives, see the article on MDN.
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.