Need help with routing problem

I have a devise model called admin which gives me current_admin and the model has a method called role, which is either 'free' or 'standard' or 'premium'.

I have a dashboard_controller with three actions:

def index ... end def free ... end def premium ... end

I have a passthrough_controller that handles which dashboard action an admin should be redirected to based on their role:

class PassthroughController < ApplicationController   def index     path = case current_admin.role       when 'free'         dashboard_free_path       when 'standard'         dashboard_standard_path       when 'premium'         dashboard_premium_path       else         admin_signin_path     end

    redirect_to path   end end

And I have these routes set up:

devise_for :admins do     match "/admins/sign_out" => "devise/sessions#destroy"     match "/dashboard/index" => 'passthrough#index'     match "/dashboard/free" => 'dashboard#free', :as => :dashboard_free_path     match "/dashboard/standard" => 'dashboard#standard', :as => :dashboard_standard_path     match "/dashboard/premium" => 'dashboard#premium', :as => :dashboard_premium_path end

This isn't working, but I'd like to know why it isn't working and where I'm going wrong.


Try to use ‘rake routes’ command to figure out the valid routes currently you have. If any valid routes was added to the routes.rb file, you’ll see it.

Hi Ryan

I've solved this. I had to remove the matched routes from the devise_for block and I had a get '/dashboard/index' on top of my routes file.