Rails 3から resources
というルーティング・ヘルパが用意されてRESTfulなURI設計に非常に役立ちます。
しかしながらサロゲートキーをプライマリキーに据える設計が主流のRails界隈において、データベースのプライマリキーをメンバURIのキーに採用するという戦略は /users/4
といった無味乾燥で、またわかりやすさに欠けるURIを生んでしまう弊害もあります。
たとえばユーザを表すリソースがあったとして、それらを一意に定めるのは名前が考えられます。
つまり /users/aereal
や /users/aereal/edit
といったURIで表現したいです。
RailsのRESTfulなパス・ヘルパ (user_path
など) のうちメンバ・リソースに関するヘルパについてはオブジェクトを渡すと暗黙のうちに Object#to_param
が呼ばれます。
これをオーバーライドすることでヘルパから統合されたURI設計が可能になりますが、すべてまとめて面倒を見てくれるのがFriendlyIdです。
使い方はREADMEが詳しいです。
#slug
カラムを生やし、URI用に体裁を整えたキーを保存することもできるようになっています。
URI設計はWebアプリケーションにおける根幹ですから、美しく簡潔でいて機能的な設計が望まれます。