method
fresh_when
v3.2.8 -
Show latest stable
- Class:
ActionController::ConditionalGet
fresh_when(record_or_options, additional_options = {})public
Sets the etag, last_modified, or both on the response and renders a 304 Not Modified response if the request is already fresh.
Parameters:
-
:etag
-
:last_modified
-
:public By default the Cache-Control header is private, set this to true if you want your application to be cachable by other devices (proxy caches).
Example:
def show @article = Article.find(params[:id]) fresh_when(:etag => @article, :last_modified => @article.created_at, :public => true) end
This will render the show template if the request isn’t sending a matching etag or If-Modified-Since header and just a 304 Not Modified response if there’s a match.
You can also just pass a record where last_modified will be set by calling updated_at and the etag by passing the object itself. Example:
def show @article = Article.find(params[:id]) fresh_when(@article) end
When passing a record, you can still set whether the public header:
def show @article = Article.find(params[:id]) fresh_when(@article, :public => true) end