Compressing a hex string in Ruby/Rails
Posted
by PreciousBodilyFluids
on Stack Overflow
See other posts from Stack Overflow
or by PreciousBodilyFluids
Published on 2010-01-02T22:45:40Z
Indexed on
2010/03/18
14:41 UTC
Read the original article
Hit count: 266
I'm using MongoDB as a backend for a Rails app I'm building. Mongo, by default, generates 24-character hexadecimal ids for its records to make sharding easier, so my URLs wind up looking like:
example.com/companies/4b3fc1400de0690bf2000001/employees/4b3ea6e30de0691552000001
Which is not very pretty. I'd like to stick to the Rails url conventions, but also leave these ids as they are in the database. I think a happy compromise would be to compress these hex ids to shorter collections using more characters, so they'd look something like:
example.com/companies/3ewqkvr5nj/employees/9srbsjlb2r
Then in my controller I'd reverse the compression, get the original hex id and use that to look up the record.
My question is, what's the best way to convert these ids back and forth? I'd of course want them to be as short as possible, but also url-safe and simple to convert.
Thanks!
© Stack Overflow or respective owner