Melhor maneira de criar token exclusivo no Rails?

Aqui está o que estou usando. O token não precisa necessariamente ser ouvido para adivinhar; é mais como um identificador de URL curto do que qualquer outra coisa, e eu quero mantê-lo curto. Segui alguns exemplos que encontrei on-line e, no caso de uma colisão,Eu acho qu o código abaixo recriará o token, mas não tenho certeza. Estou curioso para ver melhores sugestões, no entanto, pois isso parece um pouco áspero nas borda

def self.create_token
    random_number = SecureRandom.hex(3)
    "1X#{random_number}"

    while Tracker.find_by_token("1X#{random_number}") != nil
      random_number = SecureRandom.hex(3)
      "1X#{random_number}"
    end
    "1X#{random_number}"
  end

A coluna do meu banco de dados para o token é um índice exclusivo e também estou usandovalidates_uniqueness_of :token no modelo, mas como eles são criados em lotes automaticamente com base nas ações de um usuário no aplicativo (eles fazem um pedido e compram os tokens, essencialmente), não é possível que o aplicativo gere um erro.

cho que também poderia reduzir a chance de colisões, acrescentar outra string no final, algo gerado com base no tempo ou algo parecido, mas não quero que o token fique muito temp

questionAnswers(11)

yourAnswerToTheQuestion