Schienen auto-id zuweisen, die bereits vorhanden ist

Ich einen neuen Datensatz erstellen, etwa so:

truck = Truck.create(:name=>name, :user_id=>2)

Meine Datenbank hat derzeit mehrere tausend Personen für LKW, aber ich wies die id 's zu mehreren von Ihnen, in einer Weise, dass Sie Links einige id' s zur Verfügung. So was passiert, ist rails erzeugt Element mit id = 150 und es funktioniert gut. Aber dann versucht er ein Element erstellen und zuweisen-id = 151, aber diese id existiert bereits, so sehe ich diesen Fehler:

ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.

Und das nächste mal, wenn ich die Aktion, es wird einfach zuweisen der id 152, das wird funktionieren, wenn dieser Wert nicht bereits genommen. Wie kann ich die Schienen um zu prüfen, ob eine ID bereits existiert, bevor es weist?

Dank!

BEARBEITEN

Den LKW-id ist das, was wird dupliziert. Der Benutzer bereits existiert und ist eine Konstante, in diesem Fall. Es ist eigentlich ein Vermächtnis Problem, dass ich zu bewältigen haben. Eine option, um die Tabelle neu erstellen zu lassen Schienen automatische Zuordnung jeder id diese Zeit herum. Ich bin Anfang zu denken, dass dieses möglicherweise die beste Wahl sein, da bin ich noch ein paar andere Probleme, aber die migration, dies zu tun wäre sehr kompliziert, da die LKW-ist ein Fremdschlüssel, der in so vielen anderen Tischen. Würde es eine einfache Möglichkeit zu haben Schienen erstellen Sie eine neue Tabelle mit den gleichen Daten, die bereits gespeichert unter LKW, mit automatisch zugewiesenen ID ' s und die Aufrechterhaltung aller bestehenden Beziehungen?

InformationsquelleAutor der Frage D-Nice | 2012-06-17

Schreibe einen Kommentar