Validação de trilhos para garantir que um nome de usuário não colidir com uma rota existent

Quero garantir que os usuários não possam criar nomes de usuário que colidam com minhas rotas existentes. Eu também gostaria da capacidade de negar rotas futuras que eu possa definir. Estou pensando em fazer isso assim:

No modelo:

class User < ActiveRecord::Base
  @@invalid_usernames = %w()

  cattr_accessor :invalid_usernames

  validates :username, :exclusion { :in => @@invalid_usernames }
end

Em alguns inicializadores:

User.invalid_usernames += Rails.application.routes.routes.map(&:path).join("\n").scan(/\s\/(\w+)/).flatten.compact.uniq

Is "Rails way"? Existe uma maneira melhor

questionAnswers(1)

yourAnswerToTheQuestion