저는 빌드하고있는 레일즈 애플리케이션의 백엔드로 MongoDB를 사용하고 있습니다. 몽고는 기본적으로, 쉽게 샤딩 수 있도록 그 기록을 24 자 진수 ID를 생성 그래서 내 URL이처럼 보이는 바람 : 아주 예쁜하지Ruby/Rails의 16 진수 문자열 압축하기
example.com/companies/4b3fc1400de0690bf2000001/employees/4b3ea6e30de0691552000001
. Rails URL 규칙을 고수하고 싶지만이 ID는 데이터베이스에 그대로 두십시오. 나는 행복 타협 이상의 문자를 사용하여 짧은 컬렉션 이러한 진수 ID를 압축하는 것입니다 생각, 그래서 그들은 같은 것을 볼 것입니다 : 내가 압축을 반대 것 내 컨트롤러에 다음
example.com/companies/3ewqkvr5nj/employees/9srbsjlb2r
를 원래의 진수 ID를 얻을 그것을 사용하여 레코드를 찾습니다.
제 질문은 이러한 ID를 앞뒤로 변환하는 가장 좋은 방법은 무엇입니까? 나는 물론 그들이 가능한 한 짧아 지길 바라지 만, 변환하기 쉽고 안전하며 간단하다.
감사합니다.
어떻게하면됩니까? 문자열 ID에 Base64.encode64를 사용하여 시도했지만 그만큼 길어집니다. – PreciousBodilyFluids
이 스 니펫은 어떻게 수행 할 수 있는지 보여줍니다. http://rubyforge.org/snippet/detail.php?type=snippet&id=33 –
Base64.encode64는 이진 데이터 대신 문자열로 사용하기 때문에 ID를 더 길게 만듭니다. – epochwolf