キーワード型 rhtmlを改善

キーワード型 rhtml
何も考えない rhtml は見栄えが悪く、デザイナにも優しくない。

というわけで、僕も使わせてもらっているキーワード型 rhtml。
ちょっとややこしいデータを一覧表示をしようとしたらこんな結果が出やがったっす。

Completed in 42.76600 (0 reqs/sec) | Rendering: 41.75000 (97%) | DB: 0.00000 (0%) | 200 OK

でなんで、レンダリングにこんなに時間がかかっているのかわからなかったけど、なんとなく匂ってきたのはここ。

  def user(key)
    send("user_#{key}")
  rescue
    @user.send(key)
  end

これを以下のようにしてみた。

  def user(key)
    m = "user_#{key}"
    respond_to?(m) ? send(m) : @user.send(key)
  end

そしたらこんなに改善した。

Completed in 1.56200 (0 reqs/sec) | Rendering: 0.56200 (35%) | DB: 0.00000 (0%) | 200 OK

Renderingが大体70倍の速さ。rescueが重いのか?重いんだろうなー。