Ruby on rails 运行时动态Rails路由

Ruby on rails 运行时动态Rails路由,ruby-on-rails,Ruby On Rails,我有一个应用程序,有两种类型的用户-员工和客户,客户下订单,员工处理 对于每种类型的用户,我都有一个单独的控制器OrdersController,它提供各种操作和不同类型的视图 我希望能够在共享部分中执行重定向到order\u路径(@order),以便根据用户类型访问正确的控制器 例如:order\u路径(order)应翻译为员工的/employees/orders/ID,客户的/clients/orders/ID 最好不要像“调度控制器”这样的黑客,它们会根据用户类型发出进一步的重定向,或者对

我有一个应用程序,有两种类型的用户-员工和客户,客户下订单,员工处理

对于每种类型的用户,我都有一个单独的控制器OrdersController,它提供各种操作和不同类型的视图

我希望能够在共享部分中执行
重定向到order\u路径(@order)
,以便根据用户类型访问正确的控制器

例如:
order\u路径(order)
应翻译为员工的
/employees/orders/ID
,客户的
/clients/orders/ID

最好不要像“调度控制器”这样的黑客,它们会根据用户类型发出进一步的重定向,或者对每种类型的用户进行分类


如何为此设置路由?

这不是“动态路由”的真正工作,路由表在设计上是静态的

相反,您可以定义自己的助手方法来查看当前用户类型,并调用正确的路由助手

例如:

# app/helpers/application_helper.rb

def order_path(order)
  if current_user.is_a? Employee
    employee_order_path(order)
  else
    user_order_path(order)
  end
end

很好,谢谢。我必须在不同的助手中完成这项工作,但对于每种类型的用户和模型,我有100多个。