railsキャッシュインスタンス
詳細
ニュースにページキャッシュを追加し、更新時にキャッシュをクリアします.
環境での構成:
NewsSweeperクラスの定義:
関連技術接続参考:[/url]http://www.ibm.com/developerworks/cn/web/wa-rails1/
ニュースにページキャッシュを追加し、更新時にキャッシュをクリアします.
class NewsController < ApplicationController
caches_page :show, :index
cache_sweeper :news_sweeper, :only => [:create, :update, :destroy]
def index
list
render :action => 'list'
end
def show
@news = News.find(params[:id])
render :layout=>"main"
end
def create
end
def update
end
def destroy
News.find(params[:id]).destroy
redirect_to :action => 'list'
end
end
環境での構成:
config.active_record.observers = :news_sweeper
NewsSweeperクラスの定義:
class NewsSweeper < ActionController::Caching::Sweeper
observe News
def after_save(news)
clear_news_cache(news)
end
def after_destroy(news)
clear_news_cache(news)
end
def after_update(news)
clear_news_cache(news)
end
def clear_news_cache(news)
expire_page :controller => :news, :action => :index
expire_page :controller => :news, :action => :show, :id=>news
expire_page :controller => :main, :action => :news, :id=>news
end
end
関連技術接続参考:[/url]http://www.ibm.com/developerworks/cn/web/wa-rails1/