« 土曜夜はスヌーカー | メイン | 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メソッドとURL | AccountControllerのアクション | ヘルパーメソッド |
---|---|---|
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)になる。
これでセッションに存在する単数リソースや、現在ログイン中のユーザに紐づくリソースも表現できるようになった。めでたしめでたし。
トラックバック
このエントリーのトラックバックURL:
http://www.4bit.net/x/mt/mt-tb.cgi/156