在我的应用程序中,我有一个Case
模型&用户生成的每种情况都有一个case_number
。Ruby on Rails - 生成数据库中不存在的随机数
case_number
从我的Case
模型生成。目前我创建一个case
后,从我的模型创建一个3位数的随机数。
class Case < ActiveRecord::Base
after_create :random_case_number
private
def random_case_number
random_number = Random.rand(999)
self.update_attributes(case_number: random_number)
end
end
这导致所以一些案件有相同的case_number
。如何从我的模型中生成一个当前未使用的随机数字&如果所有3位数字都被采用,它可以移动到4位数字等等。
为什么要用三个随机数,(当采取一切三位数)切换到四位随机数字?为什么使用顺序ID或从更长的随机数开始?如果猜测一个数字仍然可能,为什么你需要随机性? – spickermann
@spickermann感谢您的评论。我可以使用4位数字,但如上所述当我使用3位数字时,即使这样,一些案例也有相同的'case_number',所以我想确保它们是uniq。随机性是需要的,因为我需要的数字是随机的,所以案件不会从1,2,3,4 ... – Rubioli
恕我直言,使案件号码“随机”,但只有3或数字是一个奇怪的要求。谨慎提供一些细节? –