ページキャッシュで画像をキャッシュ

こういう方法もあるけど・・・

ActionController::Caching::Pages#cache_page(caches_pageでafter_filgerに登録されるメソッド)を使えばurl_forで工夫したりする必要ないよ。

Rails 2.1.0でのみ確認)

require 'qrcoder'
class CodeController < ApplicationController
  # サイズ
  MAX_LENGTH = 7089

  def index
    data = params[:data].join('/')
    size = (params[:size] || 96).to_i
    raise "データが大きすぎる" if data.size > MAX_LENGTH
    raise "sizeが大きすぎる" if size > 256

    # 仮にQRコードをつくって、GD::Imageオブジェクトで返したとする
    qrcode = Qrcoder.encode(data, 'png', '', :width => size)
    # データを表示
    send_data img.pngStr, :type => "image/png", :disposition => 'inline'
    # 第2引数で指定したパスでページキャッシュの作成
    # なお、第1引数はキャッシュしたいデータを渡す。nullならresponse.body。
    cache_page nil, url_for(:only_path => true, :skip_relative_url_root => true, :format => 'png')
  end

end

追記

リクエスト・・・拡張子無し
キャッシュ・・・拡張子有り(.png
だから、このままmongrelで動かしててもキャッシュ使われねーでやんのwww
m9(^Д^)プギャー
何か良い方法ないかな?