debiancdn

AWS, Content Delivery Network and Debian

日別アーカイブ: 2007/05/10

入れ子コントローラ使用時のexpire_pageの使い方は要注意

事の顛末はdonrailsのgoogle groupsに書いたとおりなのだが、

  • railsのcontrollerを通常時
    • 例えば :controller/:action/:id にroutes.rbによって donrails.araki.net/archives/show/1 というURLはarchivesがcontroller, showがaction, 1がid
    • このときのcontrollerはrails/app/controller/archives_controller.rb に展開される。
    • cacheを消すためには

expire_page(:contoller => ‘archives’, :action => ‘show’)

  • railsのcontrollerを入れ子にしているとき
    • donrails.araki.net/admin/article/show/1 というURLはadmin/articleがcontroller, showがaction, 1がidとなる。
    • 先ほどのcontrollerが作った/public/archives/show/1.htmlというcacheを消すためには :controllerの指定には ‘/’を先頭につけてやる必要があるようで結局

expire_page(:contoller => ‘/archives’, :action => ‘show’)

というわけでpage-cache-testをぐるぐる回しながら結局3時間くらい費やしてしまった。

広告