In meiner Anwendung habe ich eine Case
Modell & jeden Fall vom Benutzer generiert hat eine case_number
.Ruby on Rails - Generierung von Zufallszahl, die nicht in der Datenbank existiert
case_number
wird von meinem Case
Modell generiert. Momentan erstelle ich eine 3-stellige Zufallszahl aus meinem Modell, nachdem ich eine case
erstellt habe.
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
Dies verursacht haben so einige der Fälle haben die gleiche case_number
. Wie kann ich von meinem Modell eine Zufallszahl erzeugen, die noch nicht verwendet wurde & Wenn alle 3 Ziffern genommen wurden, kann es sich auf 4 Ziffern verschieben und so weiter.
Warum eine drei Zufallszahl und (wenn alle drei Stellen genommen werden) Schalter auf vier Ziffern Zufallszahl? Warum eine sequenzielle ID verwenden oder mit einer längeren Zufallszahl beginnen? Warum brauchen Sie Zufälligkeit, wenn das Erraten einer Zahl noch möglich wäre? – spickermann
@spickermann Danke für den Kommentar. Ich kann 4 Ziffern verwenden, aber wie gesagt Wenn ich 3 Ziffern verwendet habe, dann hatten einige der Fälle die gleiche 'Fallnummer', also möchte ich sicherstellen, dass sie uniq sind. Zufälligkeit ist notwendig, weil ich die Zahlen zufällig sein muss, damit die Fälle nicht von 1,2, 3, 4 ... gehen. – Rubioli
IMHO machen die Fallnummer "zufällig" aber nur 3 oder für Ziffern ist eine seltsame Anforderung . Interessieren Sie sich für Details? –