Happy Man

mash-uppy

OFINDERちょっと修正

OFINDERのちょっと修正をしました。
adsense追加とタグクラウド移動
右側枠をタグクラウドからアドセンスに変更しました。
そのため、タグクラウド表示は、メニューのTAGSからお願いします。
あと、送信メールの本文を一言メモみたいに使ったらよいかな。
なんて考えていたんですが、入力が面倒なので本文部分はみないことにしました。
やっぱり、コメント欄をつくろうかと思っています。

簡単キャッシング

お金のことではないですよ。もちろん、railsネタです。
ActionControllerのcaches_pageという機能を使います。
やることは3つです。
1.config/environments/production.rb(開発中ならdevelopment.rb)の
設定を確認して以下のようにtrueにします。
config.action_controller.perform_caching=true
デフォルトな設定の場合
作成されるキャッシュファイルの拡張子はhtml
保存場所は、public以下にroutes.rbに従って、
コントローラ名/アクション名フォルダのように作成されます。
また、デフォルトではなく変更したい人向けのオプションもあります。
拡張子と保存ディレクトリを適宜変更できます。
config.action_controller.page_cache_extension=’.html’
config.action_controller.page_cache_directory=’/public/caches’
2.コントローラに、キャッシュしたいメソッド名というかアクション名を以下のように追加します。
caches_page :キャッシュしたいメソッド名1,:キャッシュしたいメソッド名2…
準備は、たったこれだけです。
2で設定されたアクションのページにアクセスしてみてください。
指定フォルダにキャッシュファイルが作成されています。楽チンですよ。
一生ずっと内容が変わらないコンテンツであれば
これでよいのですが、普通はそうはいきません。
必ずページは更新されるはずです。
3.キャッシュファイルの更新
作成されたキャッシュファイルを消した後、
もう一度ページにアクセスすればキャッシュは更新されます。
消す方法はいくつか考えられると思いますが、
railsの機能としてはexpire_pageがあります。
たとえば、以下のようなイメージです。
showでキャッシュ作成、updateでキャッシュ削除
PhotosController
caches_page :show
def show
photo=Photo.find(:first, :conditions=>[’id=?’,id])
end
def update
Photo.update(id,{:column1=>’aaa’,:culumn2=>’b’})
expire_page :action=>’show’,:id=>id
end
ちなみに
OFINDERの場合、
GMAIL受信時(cronです)に写真が追加されたページのファイルを
消してあげるようにしました。
cache_file=”キャッシュフォルダ/#{id}.html”
FileUtils.rm(cache_file,{:force=>true})
あと、IMPORTでの検索結果はキャッシュしていません。