ruby - 在 Rails 中使用 uuidtools 生成一个短的 UUID 字符串

标签 ruby ruby-on-rails-3 uuid

我必须生成一个唯一的随机字符串,并将其存储在数据库中。为此,我使用了“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="

45传递给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/

相关文章:

ruby-on-rails - `destroy` 对象上 RSpec 更改的意外结果

javascript - WicketPDF 渲染表未正确对齐且页脚位于最后一页

ruby-on-rails-3 - 获取 Instagram gem 请求的 Instagram 访问 token

postgresql - 从 PostgreSQL 中 uuid 的大端创建大整数

Ruby 元编程 : Initialize singleton_class variable

ruby - ruby 的颠覆客户端?

ruby-on-rails - Mongoid::Paranoia 删除关联

url - UUID 是 "URL safe"吗?

ios - xcode 5 : How do you add a UUID to a provisioning profile managed by xcode?

sql - Ruby Sequel 错误,表已存在