Hexadecimální id můžete představovat v základu vyšším než 16 aby byla jeho řetězcová reprezentace kratší. Ruby má vestavěnou podporu pro práci s bázemi z 2 až do 36 .
b36 = '4b3fc1400de0690bf2000001'.hex.to_s(36)
# => "29a6dblglcujcoeboqp"
Chcete-li jej převést zpět na 24znakový řetězec, můžete udělat něco takového:
'%024x' % b36.to_i(36)
# => "4b3fc1400de0690bf2000001"
Chcete-li dosáhnout lepší "komprese", můžete uvést id v základu vyšším než 36 . Existují knihovny Ruby, které vám s tím pomohou. all-your-base
gem je jednou z takových knihoven.
Doporučuji základ 62 reprezentace, protože používá pouze 0-9 , a-z a A-Z znaků, což znamená, že je ve výchozím nastavení bezpečné pro adresy URL.