連結テーブルに対する map.resources の定義

最近コードを書く気力が無くて(Windows 2008がおもしろくてw)、久々に開発作業。

Feed (1)--(N) Subscription (N)--(1) User におけるSubscriptionで次のようなURIを定義したい。

/subscriptions/:user_id/
/subscriptions/:user_id/new
/subscriptions/:user_id/create
/subscriptions/:user_id/:id
/subscriptions/:user_id/:id/edit

map.connect だったらがんばれば定義できると思う。map.resources だとがんばらなくても定義できるのかな?

map.resources("", :controller => "subscriptions", path_prefix => "/subscriptions/:user_id") とかやってできるものか、と思ってやってみる。

/subscriptions/:user_id//:id.:format  {:controller=>"subscriptions", :action=>"destroy"}

だめっぽい。

/:user_id/subscriptions/
/:user_id/subscriptions/new
/:user_id/subscriptions/:id
/:user_id/subscriptions/:id/edit

ならできそうだなぁ。日本人的には違和感のあるパスの順序なんだけれど、UNIX 的には /~user/... だし、そんなものかなぁ。