Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3路由:向命名空间中的所有资源添加操作_Ruby On Rails_Ruby On Rails 3_Routes - Fatal编程技术网

Ruby on rails Rails 3路由:向命名空间中的所有资源添加操作

Ruby on rails Rails 3路由:向命名空间中的所有资源添加操作,ruby-on-rails,ruby-on-rails-3,routes,Ruby On Rails,Ruby On Rails 3,Routes,我正在为cms设计我的管理面板,我想要下载,图片和文章。这些元素中的每一个都可以分类,所以我在每个控制器上都有一个动作“分类”(下载、图像和文章) 在我的路由文件中,我有以下内容: namespace :admin do resources :downloads resources :images resources :articles end 我的问题是上面的代码只为索引、显示、编辑、更新和销毁创建路由。是否有一种方法可以将categories操作添

我正在为cms设计我的管理面板,我想要下载,图片和文章。这些元素中的每一个都可以分类,所以我在每个控制器上都有一个动作“分类”(下载、图像和文章)

在我的路由文件中,我有以下内容:

 namespace :admin do    
     resources :downloads
     resources :images
     resources :articles
 end

我的问题是上面的代码只为索引、显示、编辑、更新和销毁创建路由。是否有一种方法可以将categories操作添加到所有资源中一次,而不声明三次?

如果需要更细粒度的控制,还可以提供自己的自定义资源方法:

namespace :admin do
  [:downloads, :images, :articles].each do |resource|
    resources resource do
      get :categories, :on => :collection
    end
  end
end
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