T

rails 3のroutes.rbからいちいちモデルを呼ぶ

rails 3のroutes.rbで、パフォーマンスという面ではいかがなものかと思うけど、面白いことができた。

例えば、Categoryクラスがあって、それはモデルで、データとして「野球」「サッカー」「盥回し」みたいなカテゴリが登録されているとする。カテゴリ名はslugという別名をもっている。野球だったらbaseball、サッカーだったらfootball、盥回しだったらspin_basinとか。

rails generate model category name:string slug:string

で、突然SEOコンサルなる人が現れて、ほぼ構築が完了したこのサイトには/baseballとか、/footballとかの素敵なURLが必要、といわれてしまう。当然、/categories/1なんてのは却下だ。

やけっぱちになったエンジニアは、どうせこんな間抜けなコンサルを雇ってるバカなサービスは人気も出ないまますぐ潰れるだろう、とサイトのパフォーマンス低下は無視することにして、config/routes.rbに下のようなコードを挿入した。

Category.all.each do |cat|
  match "#{cat.slug}" => 'categories#view', :id => cat.id
end

こんなのでも動くんだね。

Posted by on 12月 27, 2010 in Ruby

コメントを残す