Anda dapat mewakili id heksadesimal dalam basis yang lebih tinggi dari 16
untuk membuat representasi string lebih pendek. Ruby memiliki dukungan bawaan untuk bekerja dengan basis dari 2
hingga 36
.
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
Untuk mengubahnya kembali menjadi string 24 karakter, Anda dapat melakukan sesuatu seperti ini:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
Untuk mencapai "kompresi" yang lebih baik, Anda dapat mewakili id di basis lebih tinggi dari 36
. Ada perpustakaan Ruby yang akan membantu Anda dengan itu. all-your-base
permata adalah salah satu perpustakaan tersebut.
Saya merekomendasikan basis 62
representasi karena hanya menggunakan 0-9
, a-z
dan A-Z
karakter yang berarti URL aman secara default.