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.