Tag: uuid

Rails + Postgres迁移 – 为什么我收到错误“PG :: UndefinedFunction:ERROR:function gen_random_uuid()不存在”?

我的一个Rails迁移使用uuid作为主键。 Postgres扩展gen_random_uuid()应解决此问题,但在安装相关扩展( uuid-ossp )后我仍然会收到错误。

Ruby on Rails – 生成bit.ly样式的uuids

我正在尝试使用与bit.ly url相同的样式生成UUID,例如: http://bit.ly/aUekJP 或cloudapp: http://cl.ly/1hVU 哪个甚至更小 我该怎么做? 我现在正在使用UUID gem作为ruby,但我不确定是否可以限制长度并得到类似的东西。 我目前正在使用这个: UUID.generate.split(“-“)[0] => b9386070 但是我想要更小,并且知道它将是独一无二的。 任何帮助将非常感谢:)

如果我使用GUID作为主键,COMB GUID是否是Rails 3.1的好主意?

我正在使用Rails 3.1和PostgreSQL 8.4。 假设我想要/需要使用GUID主键。 一个潜在的缺点是索引碎片。 在MS SQL中,推荐的解决方案是使用特殊的顺序GUID。 顺序GUID的一种方法是COMBination GUID,它在GUID末尾用5字节时间戳替换MAC地址部分。 这有一些主流采用:COMB在NHibernate( NHibernate / Id / GuidCombGenerator.cs )中本机可用。 我想我已经弄清楚如何在Rails中创建COMB GUID(在UUIDTools 2.1.2 gem的帮助下),但它留下了一些悬而未决的问题: 当PRIMARY KEY是UUID类型时,PostgreSQL会遭受索引碎片吗? 如果GUID的低位6字节是连续的,是否可以避免碎片? 下面实现的COMB GUID是否是在Rails中创建顺序GUID的可接受,可靠的方法? 谢谢你的想法。 create_contacts.rb migration class CreateContacts false do |t| t.column :id, :uuid, :null => false # manually create :id with underlying DB type UUID t.string :first_name t.string :last_name t.string :email t.timestamps […]

在导轨和多态关系中使用UUID作为主键

我正在创建一个将分散的rails 3应用程序,我需要使用UUID作为我的表的主键 ,什么是最好的gem,插件为Job。 我还想知道是否有可能在不使用polymorphicable_type列的情况下使用ActiveRecord多态关系,因为我使用的是UUID。 我创建了一个使用UUID作为键的http://github.com/boriscy/uuidrails3 演示 ,你应该检查lib /中的模块UUIDHelper以及所有的迁移。 无需在数据库中添加主键,只需添加索引,因为主键validation字段的唯一性,但我们不需要使用UUID。

如何使用Ruby中的自定义字符集将UUID转换为字符串?

我想根据此处的规范创建一个有效的IFC GUID(IfcGloballyUniqueId): http : //www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcutilityresource/lexical/ifcgloballyuniqueid.htm 它基本上是一个UUID或GUID(128位)映射到一组22个字符,以限制文本文件中的存储空间。 我目前有这个解决方法,但它只是一个近似值: guid = ”;22.times{|i|guid<<'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$'[rand(64)]} 最好使用ruby SecureRandom生成128位UUID,如本例所示( https://ruby-doc.org/stdlib-2.3.0/libdoc/securerandom/rdoc/SecureRandom.html ): SecureRandom.uuid #=> “2d931510-d99f-494a-8c67-87feb05e1594” 根据以下格式,此UUID需要映射到长度为22个字符的字符串: 1 2 3 4 5 6 0123456789012345678901234567890123456789012345678901234567890123 “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$”; 我完全不明白这一点。 如果将32个字符的长hex数转换为128个字符长的二进制数,则分为22组6位(除了获得剩余的2位的一个?),每个都可以转换为十进制数从0到64? 然后又可以用转换表中的相应字符替换? 我希望有人可以validation我是否在这里正确的轨道。 如果我是,那么Ruby中是否有一种计算速度更快的方法将128位数转换为22位0-64而不是使用所有这些单独的转换? 编辑 :对于有同样问题的人,这是我现在的解决方案: require ‘securerandom’ # possible characters in GUID guid64 = ‘0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$’ guid = “” # SecureRandom.uuid: creates a 128 bit UUID hex string […]

ruby base64以2位字符开头编码128位数,以防止结尾填充

这个问题是我上一个问题的后续问题: 如何在Ruby中使用自定义字符集将UUID转换为字符串? 但我会尝试将其作为一个单独的具体问题来制定。 我有一个Ruby 128位UUID作为hex值: SecureRandom.uuid #=> “2d931510-d99f-494a-8c67-87feb05e1594” 如果我正确地获得了IFC规范( http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcutilityresource/lexical/ifcgloballyuniqueid.htm ),我想对Base64进行编码,而不是在最后,我希望输出以2位字符(4个选项)开头,而不是6位(64个选项需要)。 这样我认为我最终可以得到一个22个字符的字符串(1个2位,6个中的21个,总共128位)。 是否有可能以这种方式调整Ruby base64?

如何将UUID缩短到特定长度?

我想将UU​​ID用于数据库记录,但如果我将它用于URL,我希望它是5到8个字符。 我知道我需要使用SecureRandom和base64 ,但是如何指定我需要的长度?

从ruby中的UUID v1中提取时间

我已经存储了UUID v1作为密钥的数据,现在我想知道何时生成UUID。 我怎么做那个好方法?

Ruby中SecureRandom.urlsafe_base64(8)冲突的可能性?

我正在使用SecureRandom.urlsafe_base64(8)来在我的系统中创建URL安全的唯一ID。 我想知道如何计算碰撞的概率? 我将大约10,000个这些ID插入到数组中,我想避免检查其中一个键是否已经在数组中,但我还想确保不重复? 有什么机会?

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

我必须生成一个唯一的随机字符串,该字符串将存储在数据库中。 为此,我使用了“uuidtools”gem。 然后在我的控制器中添加了以下行: require “uuidtools” 然后在我的控制器创建方法我已经声明了一个’temp’变量并生成一个独特的随机’uuid’字符串,如下所示: temp=UUIDTools::UUID.random_create 这是创建一个像这样的字符串: f58b1019-77b0-4d44-a389-b402bb3e6d50 现在我的问题是我必须缩短它,最好在8-10个字符之内。 现在我该怎么办? 是否可以传递任何参数使其成为一个理想的长度字符串? 提前致谢…