Rails3 - 提取路由中的常见操作

时间:2011-11-15 15:54:56

标签: ruby-on-rails ruby-on-rails-3

拥有大量共享常见自定义操作的资源,即:导入和导出:

  resources :users do
    collection do
      post "import"
      get "export"
    end
  end
  resources :companies do
    collection do
      post "import"
      get "export"
    end
  end

有没有办法提取重复代码并重用它? 在之前的Rails中,我认为可以通过以下方式实现:

  imp_exp_collection = {:import => :post, :export => :get}
  resources :users, :collection => imp_exp_collection
  resources :companies, :collection => imp_exp_collection

1 个答案:

答案 0 :(得分:9)

您可以在路线文件中定义一个方法,并可以像

一样调用它们
def imp_exp_collection
  collection  do
    post "import"
    get "export"
  end
end

并按以下方式使用

  resources :users do
   imp_exp_collection
  end