0

我有一个类别模型,在我的 routes.rb 中,我有

resources :categories

它生成以下一组路线。

categories_path      GET     /categories(.:format)           categories#index
                     POST    /categories(.:format)           categories#create
new_category_path    GET     /categories/new(.:format)       categories#new
edit_category_path   GET     /categories/:id/edit(.:format)  categories#edit
category_path        GET     /categories/:id(.:format)       categories#show
                     PATCH   /categories/:id(.:format)       categories#update
                     PUT     /categories/:id(.:format)       categories#update
                     DELETE  /categories/:id(.:format)       categories#destroy

现在,我需要的是除了所有 GET 路由之外,我希望其余的路由都在“/admin”范围内。这样可以在 admin/categories/:id/edit 等处访问创建、编辑和删除等操作。

有没有一种简单的方法来提及这个范围?

4

2 回答 2

1

您可能希望在命名空间下组织控制器组。最常见的情况是,您可以将多个管理控制器分组到一个 admin 命名空间下。您可以将这些控制器放在app/controllers/admin目录下,并且可以将它们组合到路由器中:

namespace "admin" do
  resources :posts, :comments
end

这将为每个帖子和评论控制器创建许多路由。对于Admin::PostsController,Rails 将创建:

GET       /admin/posts
GET       /admin/posts/new
POST      /admin/posts
GET       /admin/posts/1
GET       /admin/posts/1/edit
PATCH/PUT /admin/posts/1
DELETE    /admin/posts/1

通过apidock 文档检查其余部分

于 2013-08-30T10:08:11.907 回答
0

我认为您可以两次定义类别路线。

resources :categories, :only => :index
resources :categories, :except => :index, :path => 'admin/categories'
于 2013-08-30T10:00:53.530 回答