62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
= Render Caching
|
|
|
|
Cache render calls in Rails controllers.
|
|
|
|
|
|
== Install
|
|
|
|
First install the gem.
|
|
|
|
gem install ryanb-render-caching --source=http://gems.github.com
|
|
|
|
Then specify it in your Rails config.
|
|
|
|
config.gem 'ryanb-render-caching', :lib => 'render_caching', :source => 'http://gems.github.com'
|
|
|
|
Rails 2.1 or later required.
|
|
|
|
|
|
== Usage
|
|
|
|
This gem adds the render_with_cache method to all controllers. Call
|
|
this inside of an action to cache the view.
|
|
|
|
def show
|
|
@user = User.find(params[:id])
|
|
render_with_cache
|
|
end
|
|
|
|
This will cache the full rendered contents into a key matching the URL
|
|
path (similar to action caching). You can change this key by simply
|
|
passing any parameter.
|
|
|
|
def show
|
|
@user = User.find(params[:id])
|
|
render_with_cache @user.cache_key
|
|
end
|
|
|
|
Cache key is a method supplied by Rails. This includes the updated_at
|
|
time which will give you an auto-expiring cache when the user record is
|
|
updated.
|
|
|
|
You can also supply a block to the render call which will only get
|
|
executed if there is no cache. Here is a good place to do any custom
|
|
render calls.
|
|
|
|
def show
|
|
@user = User.find(params[:id])
|
|
render_with_cache @user.cache_key do
|
|
render :layout => false
|
|
end
|
|
end
|
|
|
|
|
|
== Development
|
|
|
|
This project can be found on github at the following URL.
|
|
|
|
http://github.com/ryanb/render-caching/
|
|
|
|
If you would like to contribute to this project, please fork the
|
|
repository and send me a pull request.
|