Możesz reprezentować szesnastkowy identyfikator w bazie wyższej niż 16
aby skrócić jego reprezentację w postaci ciągu. Ruby ma wbudowaną obsługę pracy z bazami z 2
do 36
.
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
Aby przekonwertować go z powrotem na 24-znakowy ciąg, możesz zrobić coś takiego:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
Aby uzyskać lepszą „kompresję”, możesz przedstawić id w bazie wyższej niż 36
. Istnieją biblioteki Ruby, które ci w tym pomogą. all-your-base
klejnot jest jedną z takich bibliotek.
Polecam bazę 62
reprezentacja, ponieważ używa tylko 0-9
, a-z
i A-Z
znaków, co oznacza, że domyślnie adres URL jest bezpieczny.