Я пытаюсь реализовать «контекстную» систему, подобную той, что используется GitHub. Например, Post может создаваться принадлежащей либо Пользователю, либо Пользователю, которому принадлежит Пользователь, в зависимости от того, находится ли Пользователь в контексте «Пользователь» или в контексте, который относится к одной из компаний.Rails 3 маршрутизации на основе контекста
В качестве части этого я хотел бы иметь возможность выполнять маршрутизацию на основе текущего контекста пользователя. Например, если Пользователь находится в своем собственном контексте, /dashboard
должен маршрутизировать до users/show
, но если они предназначены для Компании с идентификатором 35, то /dashboard
должен маршрутизировать до companies/35/dashboard
.
Я мог маршрут /dashboard
на специальный контроллер, ответственный за принятие таких решений, таких как context#dashboard
, которые могли бы сделать redirect_to
, но это не чувствует себя совершенно правильно (возможно, потому, что мы с логикой, что Rails маршрутизации модуль должен отвечать и перемещать его на контроллер?)
Что было бы правильным способом решить эту проблему в Rails 3?
Я понимаю, что вы не чувствуете себя правильно с контроллером панели управления в качестве опции псевдо-маршрутизатора, но наличие маршрутизатора, читающего модель контекста/сеанса из информации, передаваемой куки-файлами/params, также кажется странным. – hellvinz