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'
      when 'standard'
      when 'premium'

    redirect_to path

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

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.