¿Validación de rieles para garantizar que un nombre de usuario no entre en conflicto con una ruta existente?

Quiero asegurarme de que los usuarios no puedan crear nombres de usuario que entren en conflicto con mis rutas existentes. También me gustaría la posibilidad de negar rutas futuras que pueda definir. Estoy pensando en lograr esto de esta manera:

En el modelo:

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

  cattr_accessor :invalid_usernames

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

En algún inicializador:

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

¿Es este el "camino de los rieles"? ¿Hay una mejor manera?

Respuestas a la pregunta(2)

Su respuesta a la pregunta