首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组织rails路由的更好方法?

组织rails路由的更好方法?
EN

Stack Overflow用户
提问于 2012-12-21 04:18:44
回答 1查看 259关注 0票数 1

我只是想知道是否有更好的方法来组织这些rails路线。也许是在一个群里?我对这样的最佳实践并不熟悉。

代码语言:javascript
复制
TestApp::Application.routes.draw do
  root :to => 'posts#index'
  resources :posts, :except => :destroy
  match '/posts/page/:page' => 'posts#page'
  match '/posts/delete/:id' => 'posts#delete'
  match '/posts/undelete/:id' => 'posts#undelete'
  match '/posts/hide/:id' => 'posts#hide'
  match '/posts/unhide/:id' => 'posts#unhide'
  match '/help' => 'help#index'
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-21 04:28:51

,您可以将它们分组到嵌套在resources :posts上的块中的collection块中,如下所示

代码语言:javascript
复制
resources :posts, :except => :destroy do
  collection do
    match 'page/:page'   => 'posts#page'
    match 'delete/:id'   => 'posts#delete'
    match 'undelete/:id' => 'posts#undelete'
    match 'hide/:id'     => 'posts#hide'
    match 'unhide/:id'   => 'posts#unhide'
  end
end

不过,这些路由的RESTful不是很好。我可能会提出如下建议:

代码语言:javascript
复制
resources :posts, :except => :destroy do
  member do
    get    'page/:page' => 'posts#page'
    delete 'delete'     => 'posts#delete'
    put    'undelete'   => 'posts#undelete'
    put    'hide'       => 'posts#hide'
    put    'unhide'     => 'posts#unhide'
  end
end

这将创建更清晰的路由,同时仍然指向相同的控制器/操作。但是,您的必须修改您的应用程序,使其指向正确的路由,但要支持这种更容易被接受的行为。

代码语言:javascript
复制
              GET    /posts/:id/page/:page(.:format)   posts#page
  delete_post DELETE /posts/:id/delete(.:format)       posts#delete
undelete_post PUT    /posts/:id/undelete(.:format)     posts#undelete
    hide_post PUT    /posts/:id/hide(.:format)         posts#hide
  unhide_post PUT    /posts/:id/unhide(.:format)       posts#unhide
        posts GET    /posts(.:format)                  posts#index
              POST   /posts(.:format)                  posts#create
     new_post GET    /posts/new(.:format)              posts#new
    edit_post GET    /posts/:id/edit(.:format)         posts#edit
         post GET    /posts/:id(.:format)              posts#show
              PUT    /posts/:id(.:format)              posts#update
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13979836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档