module

Fragment caching is used for caching various blocks within views without caching the entire action as a whole. This is useful when certain elements of an action change frequently or depend on complicated state while other parts rarely change or can be shared amongst multiple parties. The caching is done using the cache helper available in the Action View. See ActionView::Helpers::CacheHelper for more information.

While it’s strongly recommended that you use key-based cache expiration (see links in CacheHelper for more information), it is also possible to manually expire caches. For example:

expire_fragment('name_of_cache')

Files

  • actionpack/lib/action_controller/caching/fragments.rb

3Notes

Naming fragment cache

hosiawak · May 31, 20104 thanks

One of the common ways of using fragment caching is to cache content that's shared across the site (eg. left navigation, menus, widgets etc.) that looks and works the same regardless of the name of the action or controller calling it. In such cases it's very easy to just use named fragment caching eg.:

<% cache('left_nav') do -%> <%= display_left_nav -%> <% end -%>

expires_in option

stjernstrom · Aug 24, 20131 thank

@concept47 do you really need to check the fragment in the controller?

ActiveRecord will execute the query when its used

cars = Car.where(:colour => 'black') # No Query cars.each {|c| puts c.name } # Fires "select * from cars where ..."

"Lazy Loading" - http://m.onkey.org/active-record-query-interface

You have explain well

JohnsonSusan · Oct 2, 2013

You have explain well about fragment caching as I was in need of this information. http://autobodycarparts.com