What about leaving the standard routes alone and using a before_filter in the Invitations controller to check for admin status only for the new and create actions?
class Devise::InvitationsController < DeviseController
...
before_filter :is_admin?, :only => [:new, :create]
...
end
It looks like the devise_invitable gem actually uses this method internally as well:
class Devise::InvitationsController < DeviseController
before_filter :authenticate_inviter!, :only => [:new, :create]
before_filter :has_invitations_left?, :only => [:create]
before_filter :require_no_authentication, :only => [:edit, :update]
...
end
According to their Readme:
To change the controller’s behavior, create a controller that inherits from Devise::InvitationsController. The available methods are: new, create, edit, and update. You should read the original controllers source before editing any of these actions.
I would just copy their default controller and try adding my own custom is_admin? before_filter in there for the new and create actions. Of course you'll also have to define the is_admin? method that the before filter calls.