fresh_when

fresh_when(record_or_options, additional_options = {})
Instance Public methods

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.

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
doc_ruby_on_rails
2015-06-20 00:00:00
Comments
Leave a Comment

Please login to continue.