LoginSignup
13
14

More than 5 years have passed since last update.

friendly_idを使ってFriendlyでRESTfulなURI設計

Posted at

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アプリケーションにおける根幹ですから、美しく簡潔でいて機能的な設計が望まれます。

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14