Tworzę nowy rekord w ten sposób:
truck = Truck.create(:name=>name, :user_id=>2)
Moja baza danych zawiera obecnie kilka tysięcy podmiotów dla ciężarówki, ale przypisałem identyfikatory do kilku z nich w sposób, który pozostawił dostępne identyfikatory. Więc co się dzieje, to rails tworzy element o id = 150 i działa dobrze. Ale potem próbuje utworzyć element i przypisać mu id = 151, ale ten identyfikator może już istnieć, więc widzę ten błąd:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
Następnym razem, gdy uruchomię tę akcję, po prostu przypisze identyfikator 152, który będzie działał dobrze, jeśli ta wartość nie jest już pobrana. Jak mogę sprawić, by railsy sprawdzały, czy identyfikator już istnieje, zanim go przypisuje?
Dzięki!
EDYTOWAĆ
Duplikuje się identyfikator ciężarówki. Użytkownik już istnieje i jest w tym przypadku stałą. W rzeczywistości jest to problem, z którym muszę się uporać. Jedną z opcji jest ponowne utworzenie tabeli przy pomocy niech rails auto przypisuje tym razem każdy identyfikator. Zaczynam myśleć, że to może być najlepszy wybór, ponieważ mam kilka innych problemów, ale migracja w tym celu byłaby bardzo skomplikowana, ponieważ ciężarówka jest kluczem obcym w wielu innych tabelach. Czy istniałby prosty sposób, aby szyny tworzyły nową tabelę z tymi samymi danymi, które są już zapisane w ciężarówce, z automatycznie przypisywanymi identyfikatorami i zachowując wszystkie istniejące relacje?