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.

Thanks

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.

Thanks