【问题标题】:Generate uuid in size of 16 and datatype : binary生成大小为 16 的 uuid 和数据类型:二进制
【发布时间】:2019-11-21 21:53:56
【问题描述】:

在rails中为16位二进制数据类型生成uuid

我使用过这个“SecureRandom.uuid”,但它需要很大的尺寸。 它需要很大的大小,我有二进制(16)数据类型和大小,数据库=mysql; uuid = SecureRandom.uuid

我想要 16 大小的 uuid 并以二进制数据类型存储。

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5


【解决方案1】:

试试这个:

require 'securerandom'
uuid = SecureRandom.hex 16

在典型模型中你会这样做:

before_create :set_uuid
def set_uuid
  self.uuid ||= SecureRandom.hex 16 # or self.id, whatever your attribute is named
end

如果您使用的是 PG,它对 UUID 的支持非常好,而且对性能的影响很小,因此您只需在迁移中定义 uuid 列。 https://lab.io/articles/2017/04/13/uuids-rails-5-1/

【讨论】:

  • 好的,谢谢,但是 hex(16) 需要 32 大小,所以我使用了 hex(8),现在它需要 16 大小并且工作成功。
猜你喜欢
  • 2016-03-19
  • 2022-01-14
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多