我正在为cms设计我的管理面板,我希望有例如下载,图像和文章。这些元素中的每一个都可以分类,因此我在每个控制器上都有一个“类别”(下载,图像和文章)。
在我的路线文件中,我有以下内容:
namespace :admin do
resources :downloads
resources :images
resources :articles
end
我的问题是上面的代码只为索引,显示,编辑,更新和销毁创建路由。是否有一种方法可以将类别操作添加到所有资源一次,而不会将其声明3次?
答案 0 :(得分:6)
namespace :admin do
[:downloads, :images, :articles].each do |resource|
resources resource do
get :categories, :on => :collection
end
end
end
答案 1 :(得分:0)
如果您需要更细粒度的控制,您还可以提供自己的自定义资源方法:
Rails.application.routes.draw do
def resources_with_count(*params, &block)
resources *params do
collection do
get :count
end
end
resources *params, &block
end
# This will now generate regular resources, but also add the /users/count route as well
resources_with_count :users do
resources :comments
end
resources_with_count :posts
end