• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

caches_pageとの違い

caches_actionはcaches_pageと似ていますが、依然としてすべてのリクエストがAction Packを通って処理されるようになっています。これは認証や他の制限をつけたいときに便利です。

"/lists"と"/lists.xml"は別々にキャッシュされる

また、http://blog.s21g.com/listsとhttp://blog.s21g.com/lists.xmlは異なるリクエストとして処理され、別々にキャッシュされます。つまり、:action => "lists"のキャッシュが無効になったからといって、:actioin => "list", :format => ":xml"も無効になるわけではありません。

キャッシュの無効化

expire_actionでキャッシュを無効化できます。Sweepwerを使って処理、タイミングを書く。caches.rbのサンプルを抜き出します。

   1  class ListSweeper < ActionController::Caching::Sweeper
   2      observe List, Item
   3  
   4      def after_save(record)
   5         list = record.is_a?(List) ? record : record.list
   6         expire_page(:controller => "lists", :action => %w( show public feed ), :id => list.id)
   7         expire_action(:controller => "lists", :action => "all")
   8          list.shares.each { |share| expire_page(:controller => "lists", :action => "show", :id => share.url_key) }
   9        end
  10     end
  11   
  12  class ListsController < ApplicationController
  13      caches_action :index, :show, :public, :feed
  14      cache_sweeper :list_sweeper, :only => [ :edit, :destroy, :share ]
  15  end

Refs

vendor/rails/actionpack/lib/action_controller/caching.rb
http://scottstuff.net/presentations/rails-caching/ かなり詳しい
http://www.ibm.com/developerworks/web/library/wa-rails1/
http://www.hostingrails.com/forums/rails_coding_thread/386

posted by Png satoko on Sat 28 Jun 2008 at 01:19
Contents
caches_actionの動作についてメモ:action_controller/caching.rbを読む
Comments
KingofSmack: Here also good reads for this mobile applicatio... '14-5
satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよっ... '10-12
ujihisa: :%s/blog/glob/g '10-7
satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 ... '09-10
しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫... '09-10
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ