I did before_filter , where I check if request.path == root_path , and if so, I redirect the path, which should be the user root. The root path set in routes.rb is not a user root for any user, so there is no endless redirection. Just make flash.keep so that your flash messages can withstand redirection.
EDIT: Reading Q&A and comments, trying to figure out what you already have, and what you still need. Did you manage to configure routing to get the show action displayed without :id in the url? If possible, you need something like this in your show control:
if params[:id].nil?
source share