Проверка Rails, чтобы убедиться, что имя пользователя не конфликтует с существующим маршрутом?

Я хочу убедиться, что пользователи не могут создавать имена пользователей, которые конфликтуют с моими существующими маршрутами. Мне также хотелось бы иметь возможность отрицать будущие маршруты, которые я могу определить. Я думаю о достижении этого так:

В модели:

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

  cattr_accessor :invalid_usernames

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

В каком-то инициализаторе:

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

Это "путь рельсов"? Есть ли способ лучше?

Ответы на вопрос(1)

Ваш ответ на вопрос