我正在尝试为一对用户使用唯一标识符来为消息传递模型创建房间标识符:简单地连接ID将不起作用,以下不是唯一的
#{user1_id+user2_id}
我正在考虑为每个用户创建使用
创建小的唯一令牌rand(36**8).to_s(36)
然后连接令牌,在这种情况下是唯一的。
是否需要创建此类令牌,或者是否有任何人有为一对用户创建唯一标识符的经验?
答案 0 :(得分:1)
如果您可以接受复合ID的字符串值,您可以将用户ID与分隔符一起加入:
"#{user1_id}:#{user2_id}"
我使用过冒号,但您可以使用任何您知道不会出现在用户ID中的内容。
需要注意的一件事是,ID的顺序在复合中是否重要(即是第一个用户还是第二个用户 - 或者两个用户的复合是否相同,无论谁是第一个或第二个)
您可能希望[user1_id, user2_id].sort.join(":")
生成复合,因为它将始终以相同的顺序返回ID。