Динамические Rails маршруты во время выполнения - PullRequest
0 голосов
/ 22 мая 2019

У меня есть приложение с двумя типами пользователей - сотрудники и клиенты, клиенты размещают заказы, которые обрабатывают сотрудники.

Для каждого типа пользователей у меня есть отдельный контроллер OrdersController, который предлагает различные действия и разные типы.of views.

Я бы хотел иметь возможность сделать redirect_to order_path(@order) в рамках общих партиалов, чтобы доступ к нужному контроллеру зависел от типа пользователя.

Например: order_path(Order) следует перевести на /employees/orders/ID для сотрудников и /clients/orders/ID для клиентов.

Желательно без таких хаков, как «диспетчеры диспетчеризации», которые создают дополнительные перенаправления на основе типа пользователя, илиЗаказы подклассов для каждого типа пользователей.

Как мне настроить мою маршрутизацию для этого?

1 Ответ

1 голос
/ 22 мая 2019

Это на самом деле не работа для "динамических маршрутов", таблица маршрутизации статична по своему дизайну.

Вместо этого вы можете определить свои собственные вспомогательные методы, которые смотрят на текущий тип пользователя и вызываютправильный помощник маршрута.

Например:

# 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...