Railsのキャッシュ機能

Railsのキャッシュ機能を使うには、lightyのconfでurl.rewrite = ( "^([^.]+)$" => "$1.html" )の設定をしますTextDrive Weblogにキャッシュを使え!とあります。railsのキャッシュ機能には

  • ページキャッシュ
  • アクションキャッシュ
  • フラグメントキャッシュ

があってこのうちもっとも単純なページキャッシュではActionController::Caching::Pages:caches_page :actionを使いrailsにキャッシュの作成を指示します。その作成されたキャッシュページをlighttpdに作成するよう設定するのがurl.rewrite = ( "^([^.]+)$" => "$1.html" )の意味というわけです。ActionController::Caching::Pagesのドキュメントを読んでみるとキャッシュされるベースディレクトリはRAILS_ROOT+"/public"でデフォルトの拡張子は".html"となっています。つまり実際のキャッシュはRAILS_ROOT/public/controller/action.htmlとなるわけです。こういう正規表現はもう呪文に近いのでちょっとみただけではなにを意図しているのかよく分からないことが多くて閉口します。

#!/usr/local/bin/ruby -Ku
/^([^.]+)$/ =~ '/rails-root/public/controller/action'
puts 'rewrite after : #{$1}.html'
__
#>ruby test.rb
rewrite after : /rails-root/public/controller/action.html

で、めでたく書き換えられキャッシュされたaction.htmlを表示してくれるようになります。もちろん、最初からxxxx.htmlをリクエストされた場合は正規表現にマッチしませんからrewriteされずそのまま表示されます。この程度の正規表現でビビってはプログラマの名折れでしょうが一瞬なにを意味するのかわからないところがやっぱり苦手。呪文の意味を考えなくて良いなら良いのですが。開発予定のシステムでキャッシュを使うかどうかは今のところ未定ですがもう少し勉強しておく必要がありそうです。

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/20
PukiWiki Plus! (PukiWiki/TrackBack 0.4) から 火, 2008/03/04 - 03:25 受信

memcached http://blog.cles.jp/item/1767 http://alpha.mixi.co.jp/blog/?p=119 http://phpspot.org/blog/archives/2008/03/php_93.html rails (アルゴリズムパクるといい) http://hippos-lab.com/blog/node/20 http://doruby.kbmj.com/honda_on_rail...

Comments


Apple Store(Japan)