Frage

ich eine Sache Blog-Anwendung, und ich möchte meine Routen verkürzen. Hier gibt es:

Blog::Application.routes.draw do
  resources :categories do
    resources :articles do
      resources :comments
    end
end

Rake Routen Befehl build die folgenden Zeilen:

                              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"}

Wie man sehen kann, jede Ressource in einem Baum angeordnet. Also habe ich das glaube, wird es interessant sein könnte, meine Routen wie zum Beispiel zu vereinfachen:

/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

Es ist mehr DRY, is't es? :)

Does Rails 3 bietet eine einfache Möglichkeit, dies zu tun, mit einem HTTP-Verben Zuordnung Controller-Aktionen automatisch? Dank jemand.

War es hilfreich?

Lösung

Schauen Sie sich auf flache Verschachtelung .

Hope, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top