cancancan ruby-on-rails authentication devise routes cancan

ruby on rails - cancancan - Diseñar el enrutamiento basado en roles



devise authentication (1)

En lugar de manejarlo en rutas, ¿por qué no manejarlo en ApplicationController?

#application_controller.rb before_filter :direct_to def direct_to if current_user.role == "client" redirect_to client_controller_path # etc end

Tengo una aplicación con múltiples usuarios. Cada usuario como un rol teórico (usuario, cliente, etc.). Diseñé una vista / controlador para cada tipo de usuario.

Quiero poder iniciar sesión en cada tipo de usuario hacer una url raíz diferente y bloquearlos en ella.

Originalmente, iba a agregar una columna a los usuarios en la función denominada Devise y para poder diferenciar a los usuarios. El problema que tengo es cómo decir en routes.rb if current_user.role == "client" root: to => ''controller # index''

Una vez que inician sesión en la página, también quiero evitar que puedan visitar cualquiera de mis otras rutas, es decir: domain.com/calls domain.com/units

He estado buscando en cancan para ejecutar junto a Devise, pero no estoy seguro de si esta es la respuesta.