Rails - 路由:在控制器/操作之前使用子目录

时间:2011-12-10 15:35:33

标签: ruby-on-rails-3 routing

假设我有一个名为employeesmanager的应用程序,它有一个employees资源,因此/employees/new是一个新员工等。我希望在此操作之前有公司名称,例如,ford/employees/new应该在福特创建一个新员工,而exxon/employees/new应该在埃克森创建一个新员工。这样做的最佳方式是什么?

理想情况下,我不希望使用/company/exxon/employees/new的嵌套控制器,因为这似乎是URL中额外浪费的单词,可能很难输入。

2 个答案:

答案 0 :(得分:4)

scope ":company_name" do
  resources :employees
end

有关详细信息,请查看Rails Guides on routing

答案 1 :(得分:1)

你可以尝试这样的事情:

get "/:company/employees/new" => "employees#new"

在这种情况下,使用GET方法向此路径发出的请求将传递给EmployeesController#new,而在params[:company]中,它将会收到公司名称。