Creo un nuovo record in questo modo:
truck = Truck.create(:name=>name, :user_id=>2)
Il mio database attualmente ha diverse migliaia di entità per camion, ma ho assegnato gli ID a molti di loro, in un modo che ha lasciato alcuni ID disponibili. Quindi quello che sta succedendo è che rails crea un oggetto con id = 150 e funziona bene. Ma poi prova a creare un elemento e ad assegnarlo id = 151, ma quell'ID potrebbe già esistere, quindi vedo questo errore:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
E la prossima volta che eseguo l'azione, assegnerà semplicemente l'id 152, che funzionerà bene se quel valore non è già stato preso. Come posso fare in modo che rails verifichi se esiste già un ID prima di assegnarlo?
Grazie!
MODIFICARE
L'ID camion è ciò che viene duplicato. L'utente esiste già ed è una costante in questo caso. In realtà è una questione ereditaria che devo affrontare. Un'opzione è ricreare la tabella in let rails assegna automaticamente ogni id questa volta. Comincio a pensare che questa possa essere la scelta migliore perché ho alcuni altri problemi, ma la migrazione per farlo sarebbe molto complicata perché Truck è una chiave esterna in tante altre tabelle. Ci sarebbe un modo semplice per fare in modo che rails crei una nuova tabella con gli stessi dati già memorizzati in Truck, con ID assegnati automaticamente e mantenendo tutte le relazioni esistenti?