【发布时间】:2010-12-31 21:04:18
【问题描述】:
我正在使用 MongoDB 作为我正在构建的 Rails 应用程序的后端。默认情况下,Mongo 会为其记录生成 24 个字符的十六进制 id,以使分片更容易,所以我的 URL 最终看起来像:
example.com/companies/4b3fc1400de0690bf2000001/employees/4b3ea6e30de0691552000001
这不是很漂亮。我想坚持 Rails url 约定,但也将这些 id 保留在数据库中。我认为一个愉快的折衷方案是将这些十六进制 id 压缩为使用更多字符的较短集合,因此它们看起来像:
example.com/companies/3ewqkvr5nj/employees/9srbsjlb2r
然后在我的控制器中,我将反向压缩,获取原始的十六进制 id 并使用它来查找记录。
我的问题是,来回转换这些 id 的最佳方法是什么?我当然希望它们尽可能短,而且网址安全且易于转换。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby mongodb