views:

98

answers:

1

I want to be able to do the following:

get '/:slug' do
  haml :page
end

get '/administration' do
  haml :admin
end

Is there a way that I can have get '/:slug' do have an exception for /administration? I realize you can do this with if else statements:

get '/:slug' do
  if params[:slug] == 'administration'
    haml :admin
  else
    haml :page
  end
end

But that isn't very clean looking. Is there a way to have an exception to routes?

+4  A: 

Sinatra should respect the order of routes, so if you put /administration route first, and a request matches it, get '/:slug' won't be called at all.

Mladen Jablanović
I didn't know it worked that way, thanks.
Ethan Turkeltaub