Использование base36 / уникального идентификатора в Rails URL - PullRequest
0 голосов
/ 26 апреля 2011

Использование RoR 2.3.8.

Я пытался to_param, friendly_id, и в конце концов я обнаружил, что у меня будут настоящие головные боли при конвертации Unicode, когда мой сайт выйдет на международный уровень. Я планирую иметь контент с большим количеством языков, акцентированным, китайским, японским, корейским и т. Д. Поэтому вместо того, чтобы помещать эти заголовки в свой URL, я планирую пожертвовать им. Да, я просто хочу в нем удостоверение личности.

Теперь я хочу реализовать что-то вроде YouTube, где каждый URL-адрес видео заканчивается уникальным идентификатором. Допустим, запись с ID=10 будет иметь уникальный идентификатор:

http://abc.com/shops/rD4g35tQ

Я хочу, чтобы URL был постоянным.

Я не знаю, как это сделать. Может кто-нибудь показать мне несколько примеров или дать мне голову?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Вы можете База 36 кодировать идентификаторы.36 - хороший термин для использования, потому что цифры могут быть представлены с помощью чисел 0-9 и букв AZ.

# Example with ID = 10. Convert from Base 10 to Base 36
id = 10
id.to_s(36) #=> "a"

# Convert from Base 36 back to Base 10
"a".to_i(36) #=> 10 
0 голосов
/ 26 апреля 2011

Если вы хотите сгенерировать UUID, эта библиотека поможет вам: https://github.com/assaf/uuid

Единственное, что вам нужно сделать, - это добавить before_create, чтобы назначить новый uuid для вашего объекта, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...