resourceすごすぎる

  map.resources( :users,
                 :has_many => :friends,
                 :member=>[:contact] ) do |users|
    users.resources :todos
  end

が、rake routesで↓となる。誰か使いこなせるんでしょうか。。まぁもちろん馬鹿正直に全部に対応する必要はないんですが。それにしてもねぇ。

(in /Users/moro/dev.build/todo_2_0)
                     users GET    /users                                   {:action=>"index", :controller=>"users"}
           formatted_users GET    /users.:format                           {:action=>"index", :controller=>"users"}
                           POST   /users                                   {:action=>"create", :controller=>"users"}
                           POST   /users.:format                           {:action=>"create", :controller=>"users"}
                  new_user GET    /users/new                               {:action=>"new", :controller=>"users"}
        formatted_new_user GET    /users/new.:format                       {:action=>"new", :controller=>"users"}
              contact_user        /users/:id/contact                       {:action=>"contact", :controller=>"users"}
    formatted_contact_user        /users/:id/contact.:format               {:action=>"contact", :controller=>"users"}
                 edit_user GET    /users/:id/edit                          {:action=>"edit", :controller=>"users"}
       formatted_edit_user GET    /users/:id/edit.:format                  {:action=>"edit", :controller=>"users"}
                      user GET    /users/:id                               {:action=>"show", :controller=>"users"}
            formatted_user GET    /users/:id.:format                       {:action=>"show", :controller=>"users"}
                           PUT    /users/:id                               {:action=>"update", :controller=>"users"}
                           PUT    /users/:id.:format                       {:action=>"update", :controller=>"users"}
                           DELETE /users/:id                               {:action=>"destroy", :controller=>"users"}
                           DELETE /users/:id.:format                       {:action=>"destroy", :controller=>"users"}
              user_friends GET    /users/:user_id/friends                  {:action=>"index", :controller=>"friends"}
    formatted_user_friends GET    /users/:user_id/friends.:format          {:action=>"index", :controller=>"friends"}
                           POST   /users/:user_id/friends                  {:action=>"create", :controller=>"friends"}
                           POST   /users/:user_id/friends.:format          {:action=>"create", :controller=>"friends"}
           new_user_friend GET    /users/:user_id/friends/new              {:action=>"new", :controller=>"friends"}
 formatted_new_user_friend GET    /users/:user_id/friends/new.:format      {:action=>"new", :controller=>"friends"}
          edit_user_friend GET    /users/:user_id/friends/:id/edit         {:action=>"edit", :controller=>"friends"}
formatted_edit_user_friend GET    /users/:user_id/friends/:id/edit.:format {:action=>"edit", :controller=>"friends"}
               user_friend GET    /users/:user_id/friends/:id              {:action=>"show", :controller=>"friends"}
     formatted_user_friend GET    /users/:user_id/friends/:id.:format      {:action=>"show", :controller=>"friends"}
                           PUT    /users/:user_id/friends/:id              {:action=>"update", :controller=>"friends"}
                           PUT    /users/:user_id/friends/:id.:format      {:action=>"update", :controller=>"friends"}
                           DELETE /users/:user_id/friends/:id              {:action=>"destroy", :controller=>"friends"}
                           DELETE /users/:user_id/friends/:id.:format      {:action=>"destroy", :controller=>"friends"}
                user_todos GET    /users/:user_id/todos                    {:action=>"index", :controller=>"todos"}
      formatted_user_todos GET    /users/:user_id/todos.:format            {:action=>"index", :controller=>"todos"}
                           POST   /users/:user_id/todos                    {:action=>"create", :controller=>"todos"}
                           POST   /users/:user_id/todos.:format            {:action=>"create", :controller=>"todos"}
             new_user_todo GET    /users/:user_id/todos/new                {:action=>"new", :controller=>"todos"}
   formatted_new_user_todo GET    /users/:user_id/todos/new.:format        {:action=>"new", :controller=>"todos"}
            edit_user_todo GET    /users/:user_id/todos/:id/edit           {:action=>"edit", :controller=>"todos"}
  formatted_edit_user_todo GET    /users/:user_id/todos/:id/edit.:format   {:action=>"edit", :controller=>"todos"}
                 user_todo GET    /users/:user_id/todos/:id                {:action=>"show", :controller=>"todos"}
       formatted_user_todo GET    /users/:user_id/todos/:id.:format        {:action=>"show", :controller=>"todos"}
                           PUT    /users/:user_id/todos/:id                {:action=>"update", :controller=>"todos"}
                           PUT    /users/:user_id/todos/:id.:format        {:action=>"update", :controller=>"todos"}
                           DELETE /users/:user_id/todos/:id                {:action=>"destroy", :controller=>"todos"}
                           DELETE /users/:user_id/todos/:id.:format        {:action=>"destroy", :controller=>"todos"}
                                  /:controller/:action/:id                 
                                  /:controller/:action/:id.:format         

続き。formatを抜いてみればまぁけっこうありかも。ほとんどのアクションはhtmlしか返さないことを考えるとあんまり悪くない?

(in /Users/moro/dev.build/todo_2_0)
           users GET    /users                           {:action=>"index", :controller=>"users"}
                 POST   /users                           {:action=>"create", :controller=>"users"}
        new_user GET    /users/new                       {:action=>"new", :controller=>"users"}
    contact_user        /users/:id/contact               {:action=>"contact", :controller=>"users"}
       edit_user GET    /users/:id/edit                  {:action=>"edit", :controller=>"users"}
            user GET    /users/:id                       {:action=>"show", :controller=>"users"}
                 PUT    /users/:id                       {:action=>"update", :controller=>"users"}
                 DELETE /users/:id                       {:action=>"destroy", :controller=>"users"}
    user_friends GET    /users/:user_id/friends          {:action=>"index", :controller=>"friends"}
                 POST   /users/:user_id/friends          {:action=>"create", :controller=>"friends"}
 new_user_friend GET    /users/:user_id/friends/new      {:action=>"new", :controller=>"friends"}
edit_user_friend GET    /users/:user_id/friends/:id/edit {:action=>"edit", :controller=>"friends"}
     user_friend GET    /users/:user_id/friends/:id      {:action=>"show", :controller=>"friends"}
                 PUT    /users/:user_id/friends/:id      {:action=>"update", :controller=>"friends"}
                 DELETE /users/:user_id/friends/:id      {:action=>"destroy", :controller=>"friends"}
      user_todos GET    /users/:user_id/todos            {:action=>"index", :controller=>"todos"}
                 POST   /users/:user_id/todos            {:action=>"create", :controller=>"todos"}
   new_user_todo GET    /users/:user_id/todos/new        {:action=>"new", :controller=>"todos"}
  edit_user_todo GET    /users/:user_id/todos/:id/edit   {:action=>"edit", :controller=>"todos"}
       user_todo GET    /users/:user_id/todos/:id        {:action=>"show", :controller=>"todos"}
                 PUT    /users/:user_id/todos/:id        {:action=>"update", :controller=>"todos"}
                 DELETE /users/:user_id/todos/:id        {:action=>"destroy", :controller=>"todos"}
                        /:controller/:action/:id                 

ちなみに1.2.3で作ったすごく小さい(まぁ個人的な用を足してますけど)アプリは1ヶ所修正しただけで2.0.0-PRで動きました。