although the old question, there is no answer, and it may be useful to others.
In rails 3.2 (I never tested it with anything below) you can do this in the routes.rb file
authenticated :admin_user do root :to => "admin_main#index" end
then your normal root route will be further down.
This, however, does not seem to work in rails 4, since it gives Invalid route name, already in use: 'root' (ArgumentError) (as I just found out and looked for a solution when I came across this question), if I figure out a way make it on rails 4 I will update my answer
Edit:
Good, so for Rails 4, the fix is ββpretty simple, but not so obvious from the start. all you have to do is make the second root route a named route by adding like: like this:
authenticated :admin_user do root :to => "admin_main#index", as: :admin_root end
this is documented here , but note that this only seems to be a temporary fix and therefore may be changed in the future
Dazbaldwin
source share