У меня есть два основных контроллера для моего приложения, AdminController
и ApplicationController
.
Мои правильные маршруты: /admin/merchant/1
, admin/merchant/1/shop/1
(только для вложенных 1-го уровня = P)
Однако многие пользователи будут набирать site.url/admin
или site.url/merchant
для удобства.
Прагматично ли match
несколько маршрутов к методу в моем контроллере администратора и маршрутизация их в зависимости от пользователя? т.е. match "/admin" => "admin#route_me"
before_filter :require_login
def route_me
if current_user.role?(:merchant)
redirect_to admin_merchant_path(current_user.merchant)
elsif current_user.role? :customer
redirect_to admin_customer_path(currrent_user.customer)
end
end
Есть ли хорошая реализация для универсального перехвата всех наполовину введенных маршрутов и попытки "завершить" путь для них?
например. если пользователь вводит в admin / merchant / shops (отсутствует идентификатор продавца), мой интеллектуальный маршрут знает, что он пытается получить доступ к странице своего магазина, проверяет свой идентификатор и заполняет его, если он у него есть.