如何在 Ruby 中生成唯一的六位字母数字代码
我需要生成一个唯一的六位字母数字代码。在我的数据库中保存为每笔交易的凭证编号:。
I need to generate a unique six digit alpha-numeric code. To save in my database as voucher no: for every transaction.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我使用了这个
如何在 Ruby 中生成随机字符串 这个链接很有用
I used this
How to generate a random string in Ruby This link was useful
更好的方法是让数据库处理 ids(递增)。但如果您坚持自己生成它们,您可以使用随机生成器生成代码,并根据数据库检查其唯一性。然后接受或重新生成
A better way is to let the database handle the ids(incrementing). But if you insisting on generating them your self, you can use a random generator to generate an code, check it against db for uniqueness. then either accept or regenerate
我会使用数据库来生成唯一的密钥,但如果您坚持以困难的方式这样做:
当然,您必须将当前的密钥存储在某个地方,这绝不是线程/多会话安全的等。
I'd use the database to generate unique keys, but if you insist on doing it the hard way:
Of course, you'll have to store your current key somewhere, and this is in no way thread / multisession-safe etc.
具有以下限制:
您可以使用以下简单代码:
With the following restrictions:
you can use this simple code:
这将通过获取毫秒来缓解时间冲突问题
This would eleviate the time collision issue by getting the milli seconds