Estoy usando Rails 3 y Devise para crear una aplicación donde los usuarios lleguen al sitio web y se les muestra una página de inicio que contiene un inicio de sesión y un formulario de registro. Esta página tiene su propio controlador ("página de inicio") por lo que es ruta esRails 3 w/Devise: ¿Cómo establecer dos páginas de inicio separadas en función de si el usuario está autenticado o no?
root :to => "homepage#index"
Quiero mostrar una página de inicio diferente si los usuarios ya están conectados. Esto explicaría que tiene el punto de la raíz a la
root :to => "dashboard#index"
¿Hay alguna manera de tener una ruta condicional en routes.rb, que me permita verificar si el usuario está autenticado antes de enrutarlos a una de esas páginas?
He intentado utilizar el siguiente código, pero si no estoy conectado, el dispositivo me pide que inicie sesión, por lo que solo funciona la primera ruta.
authenticate :user do
root :to => "dashboard#index"
end
root :to => "homepage#index"
Además, quiero la url para que apunte a www.example.com en ambos casos, por lo que www.example.com/dashboard/index y www.example.com/homepage/index nunca aparecen en el navegador.
¡¡¡Gracias a un millón !!!
Muchas gracias @Bradley, esto me estaba matando :) –
Hago lo mismo, pero tanto el usuario que inició sesión como el que no inició sesión usaron el dashboard # index –
Advertencia: Esto no funciona con Rails 4, se obtiene un error que dice: 'Nombre de la ruta no válida, ya en uso: 'root'' – Happynoff