我有一个类别模型,在我的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等访问创建,编辑和删除等操作。
有没有简单的方法来提及这个范围?
答案 0 :(得分:1)
您可能希望在命名空间下组织控制器组。最常见的是,您可以在管理命名空间下对许多管理控制器进行分组。您可以将这些控制器放在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
检查其余部分
答案 1 :(得分:0)
我认为你可以两次定义类别路线。
resources :categories, :only => :index
resources :categories, :except => :index, :path => 'admin/categories'