私のオンラインストアのすべての注文には、ユーザー向けの注文番号があります。それらを生成するための最良の方法を考えています。基準は次のとおりです。
- 短い
- 電話で簡単に言うことができます(たとえば、「m」と「n」はあいまいです)
- 個性的
- チェックサム(やり過ぎ?便利?)
- 編集:注文の総数は明らかにされていません(顧客は3回目の注文をするのが不安になるかもしれません)
現在、次の方法を使用しています(チェックサムなし)。
def generate_number
possible_values = 'abfhijlqrstuxy'.upcase.split('') | '123456789'.split('')
record = true
while record
random = Array.new(5){possible_values[rand(possible_values.size)]}.join
record = Order.find(:first, :conditions => ["number = ?", random])
end
self.number = random
end