Ruby on rails Rails中5-11个字符之间的唯一字母数字
我见过几种生成唯一字母数字的方法,但大多数方法都指定了特定的长度 对于长度必须在5到11之间的模型,有什么好方法可以获得唯一的字母数字 我试着用这种方法:Ruby on rails Rails中5-11个字符之间的唯一字母数字,ruby-on-rails,alphanumeric,Ruby On Rails,Alphanumeric,我见过几种生成唯一字母数字的方法,但大多数方法都指定了特定的长度 对于长度必须在5到11之间的模型,有什么好方法可以获得唯一的字母数字 我试着用这种方法: Array.new(8){[*'0'..'9', *'a'..'z', *'A'..'Z'].sample}.join 但尺寸限制为8 您可以使用rand修改示例: Array.new(rand(5..11)) { [*'0'..'9', *'a'..'z', *'A'..'Z'].sample }.join 您也可以使用,但它不能生成只
Array.new(8){[*'0'..'9', *'a'..'z', *'A'..'Z'].sample}.join
但尺寸限制为8 您可以使用rand修改示例:
Array.new(rand(5..11)) { [*'0'..'9', *'a'..'z', *'A'..'Z'].sample }.join
您也可以使用,但它不能生成只有A-Z、A-Z、0-9符号的字符串。也许你可以选择其他的序列。我更喜欢urlsafe_base64或十六进制:
require 'securerandom'
SecureRandom.urlsafe_base64(rand(5..11)) #result may contain A-Z, a-z, 0-9, “-”
SecureRandom.hex(rand(5..11)) #result may contain 0-9 and a-f