ブログアプリを持っているので、ルートを短くしたいです。ここにあります:
Blog::Application.routes.draw do
resources :categories do
resources :articles do
resources :comments
end
end
rakerootsコマンドは次の行を作成します。
GET /categories/:category_id/articles/:article_id/comments(.:format) {:controller=>"comments", :action=>"index"}
category_article_comments POST /categories/:category_id/articles/:article_id/comments(.:format) {:controller=>"comments", :action=>"create"}
new_category_article_comment GET /categories/:category_id/articles/:article_id/comments/new(.:format) {:controller=>"comments", :action=>"new"}
GET /categories/:category_id/articles/:article_id/comments/:id(.:format) {:controller=>"comments", :action=>"show"}
PUT /categories/:category_id/articles/:article_id/comments/:id(.:format) {:controller=>"comments", :action=>"update"}
category_article_comment DELETE /categories/:category_id/articles/:article_id/comments/:id(.:format) {:controller=>"comments", :action=>"destroy"}
edit_category_article_comment GET /categories/:category_id/articles/:article_id/comments/:id/edit(.:format) {:controller=>"comments", :action=>"edit"}
GET /categories/:category_id/articles(.:format) {:controller=>"articles", :action=>"index"}
category_articles POST /categories/:category_id/articles(.:format) {:controller=>"articles", :action=>"create"}
new_category_article GET /categories/:category_id/articles/new(.:format) {:controller=>"articles", :action=>"new"}
GET /categories/:category_id/articles/:id(.:format) {:controller=>"articles", :action=>"show"}
PUT /categories/:category_id/articles/:id(.:format) {:controller=>"articles", :action=>"update"}
category_article DELETE /categories/:category_id/articles/:id(.:format) {:controller=>"articles", :action=>"destroy"}
edit_category_article GET /categories/:category_id/articles/:id/edit(.:format) {:controller=>"articles", :action=>"edit"}
GET /categories(.:format) {:controller=>"categories", :action=>"index"}
categories POST /categories(.:format) {:controller=>"categories", :action=>"create"}
new_category GET /categories/new(.:format) {:controller=>"categories", :action=>"new"}
GET /categories/:id(.:format) {:controller=>"categories", :action=>"show"}
PUT /categories/:id(.:format) {:controller=>"categories", :action=>"update"}
category DELETE /categories/:id(.:format) {:controller=>"categories", :action=>"destroy"}
edit_category GET /categories/:id/edit(.:format) {:controller=>"categories", :action=>"edit"}
ご覧のとおり、各リソースはツリーで順序付けられています。ですから、たとえば次のようにルートを単純化するのは興味深いかもしれません。
/categories/ => /
/categories/:id => /:id
/categories/:category_id/articles/ => /:category_id/articles
/categories/:category_id/articles/:id => /:category_id/:id
/categories/:category_id/articles/:article_id/comments/ => /:category_id/:article_id/comments
/categories/:category_id/articles/:article_id/comments/:id => /:category_id/:article_id/:id
もっとドライですね。:)
Rails 3は、HTTP動詞がコントローラーのアクションに自動的にマッピングされるという簡単な方法を提供しますか?誰かありがとう。