Ruby on rails 在Rails中为多种工具选择合适的路径

Ruby on rails 在Rails中为多种工具选择合适的路径,ruby-on-rails,rest,routes,Ruby On Rails,Rest,Routes,我正在努力清理我的路线,我不知道该怎么办: 我有大量的工具和报告分布在各种控制器上,这些控制器基本上是集合,但它们都围绕两个参数:分区和术语 我想做这样的事情: resources :divisions do resources :terms do scope "/tools" do #something to redirect to controller "carriers" and action "carrier_distribution" #someth

我正在努力清理我的路线,我不知道该怎么办:

我有大量的工具和报告分布在各种控制器上,这些控制器基本上是集合,但它们都围绕两个参数:分区和术语

我想做这样的事情:

resources :divisions do
  resources :terms do
    scope "/tools" do
      #something to redirect to controller "carriers" and action "carrier_distribution"
      #something to redirect to controller "courses" and action "secour monitor"
    end
  end
end
我感兴趣的大多数资源都嵌套在division中

有这样一个URL将非常干净和有用:

resources :divisions do
  resources :terms do
    scope "/tools" do
      #something to redirect to controller "carriers" and action "carrier_distribution"
      #something to redirect to controller "courses" and action "secour monitor"
    end
  end
end
/部门/1/条款/1/工具/carrier\u分配

我确实可以选择做一个“工具”控制器,它可以启动这个东西。我只是不确定什么是合适的(比如我是否应该坚持传递一个术语参数)


谢谢

就我个人而言,我会使用ToolsController,为您的路线绘制地图:

map.connect "/divisions/:division_id/terms/:term_id/tools/:action", :controller => "tools"
然后您的ToolsController就可以访问这些参数:

class ToolsController < ApplicationController
  def report1
    render :text => "hello from report1, division[#{params[:division_id]}] term [#{params[:term_id]}]"
  end

  def report2
    render :text => "hello from report2, division[#{params[:division_id]}] term [#{params[:term_id]}]"
  end
end