sql >> Base de Datos >  >> NoSQL >> MongoDB

Comprimir una cadena hexadecimal en Ruby/Rails

Podría representar una identificación hexadecimal en una base superior a 16 para acortar su representación de cadena. Ruby tiene soporte incorporado para trabajar con bases de 2 hasta 36 .

b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"

Para volver a convertirlo en una cadena de 24 caracteres, podría hacer algo como esto:

'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"

Para lograr una mejor "compresión", podría representar la identificación en una base superior a 36 . Hay bibliotecas de Ruby que te ayudarán con eso. all-your-base gem es una de esas bibliotecas.

Recomiendo base 62 representación ya que solo usa 0-9 , a-z y A-Z caracteres, lo que significa que la URL es segura de forma predeterminada.