Sie könnten eine hexadezimale ID in einer höheren Basis als 16
darstellen um die Zeichenfolgendarstellung zu verkürzen. Ruby hat eingebaute Unterstützung für das Arbeiten mit Basen von 2
bis zu 36
.
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
Um es wieder in eine 24-stellige Zeichenfolge umzuwandeln, könnten Sie etwa so vorgehen:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
Um eine bessere "Komprimierung" zu erreichen, könnten Sie die ID in der Basis höher als 36
darstellen . Es gibt Ruby-Bibliotheken, die Ihnen dabei helfen. all-your-base
gem ist eine solche Bibliothek.
Ich empfehle Basis 62
Darstellung, da sie nur 0-9
verwendet , a-z
und A-Z
Zeichen, was bedeutet, dass es standardmäßig URL-sicher ist.