0
我想我的URL是一個隨機組合的字符(如YouTube在視頻URLS末尾)如何爲我的導軌應用程序創建編號(隨機)網址?
有沒有一個寶石來做到這一點?我可以將我的UUID鏈接到每個帖子,以便隨機創建一個數字組合嗎?
任何意見,將不勝感激 - 尋找某種解決方案的天(以這個速度,晚上)!
我想我的URL是一個隨機組合的字符(如YouTube在視頻URLS末尾)如何爲我的導軌應用程序創建編號(隨機)網址?
有沒有一個寶石來做到這一點?我可以將我的UUID鏈接到每個帖子,以便隨機創建一個數字組合嗎?
任何意見,將不勝感激 - 尋找某種解決方案的天(以這個速度,晚上)!
如果您願意,您可以使用UUID。我使用postgres作爲我的數據庫,它現在有一個UUID數據類型,可以很容易地用作數據庫表的主鍵。我還使用代碼將UUID「壓縮」到22個字符(有關信息,請參閱How can I shorten a UUID to a specific length?),然後將其用作ID。這需要很少的代碼。
如果需要,也可以使用SecureRandom(http://ruby-doc.org/stdlib-2.1.2/libdoc/securerandom/rdoc/SecureRandom.html)使用普通的隨機字符串,但有多種方法可以實現。
感謝 - 因爲這些職位可能會用作用戶引用我想創建短於22個字符的東西。使用隨機字符串字符是不好的形式嗎?它們可以映射到UUID(用於內部參考目的)並且它們對於我的應用程序是否是唯一的? – asaignment 2014-10-29 22:35:36
在這種情況下,您需要使用SecureRandom(上面的鏈接)創建一個較短的字符串,並將其分別存儲在數據庫中,檢查唯一性並在碰撞發生時生成另一個字符串。我有一些應用程序使用「before_create」或「before_validation」回調來創建標識符。對於這樣的表格,我留下了一個我的應用程序內部使用的標準數字ID。您可以覆蓋「to_param」以使其使用您的其他密鑰來訪問網址。 – 2014-10-30 01:41:58