« 土曜夜はスヌーカー | メイン | URIにidを使いたくない »

2006年12月15日 (金)

Singleton Resourcesが実装された [テクニカル]

「Railsのmap.resourcesに単数形リソース必要じゃん~」って2ヶ月前から言っていてプラグインとか作ったりしていたのだが、それが通じたのか(偶然だけど)Rick OlsonがSingleton Resourcesを実装してくれた!(Changeset 5701

A singleton resource is global to the current user visiting the application, such as a user's /account profile.

そうそう、そういうことなんだよ~。やっぱり考えることは同じだね。

使い方

routes.rbに、map.resourcesと違って単数形で書く。

map.resource :account
# map.resourcesと紛らわしいので注意

すると、こんな感じのルーティングが生成される。

HTTPメソッドとURLAccountControllerのアクションヘルパーメソッド
GET /account show account_url
account_path
GET /account;edit edit edit_account_url
edit_account_path
PUT /account update account_url
account_path
DELETE /account destroy account_url
account_path

ちなみに、ヘルパーメソッドの*_urlと*_pathの違いは、前にRails勉強会で「よくわかんないけど*_pathに変わってきてるみたい」とか言っていたのだが、調べてみると*_urlがスキーム・ホスト名などを含んだURL(http://example.com/account)で*_pathがルートからのパスのみ(/account)になる。

これでセッションに存在する単数リソースや、現在ログイン中のユーザに紐づくリソースも表現できるようになった。めでたしめでたし。

投稿者 4bit : 2006年12月15日 12:34 このエントリーを含むはてなブックマーク

トラックバック

このエントリーのトラックバックURL:
http://www.4bit.net/x/mt/mt-tb.cgi/156

コメント

コメントしてください




保存しますか?