我必须生成一个唯一的随机字符串,并将其存储在数据库中。为此,我使用了“uuidtools”gem。然后在我的 Controller 中添加了以下行:
require "uuidtools"
然后在我的 Controller 创建方法中,我声明了一个“temp”变量并生成一个唯一且随机的“uuid”字符串,如下所示:
temp=UUIDTools::UUID.random_create
它正在创建这样一个字符串:
f58b1019-77b0-4d44-a389-b402bb3e6d50
现在我的问题是我必须让它简短,最好在 8-10 个字符以内。现在我该怎么做??是否可以传递任何参数以使其成为所需长度的字符串?
提前致谢...
最佳答案
为此您不需要 uuidtools。您可以使用 Secure Random为此。
[1] pry(main)> require "securerandom"
=> true
[2] pry(main)> SecureRandom.hex(20)
=> "82db4d707c4c5db3ebfc349da09c991b7ca0faa1"
[3] pry(main)> SecureRandom.base64(20)
=> "CECjUqNvPBaq0o4OuPy8RvsEoCY="
将4
和5
传递给hex
将分别生成8个和10个字符的十六进制字符串。
[5] pry(main)> SecureRandom.hex(4)
=> "a937ec91"
[6] pry(main)> SecureRandom.hex(5)
=> "98605bb20a"
关于ruby - 在 Rails 中使用 uuidtools 生成一个短的 UUID 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196253/