Je crée un nouveau disque comme ceci:
truck = Truck.create(:name=>name, :user_id=>2)
Ma base de données contient actuellement plusieurs milliers d'entités pour les camions, mais j'ai attribué les identifiants à plusieurs d'entre eux, de manière à laisser certains identifiants disponibles. Donc, ce qui se passe, c'est que les rails créent un élément avec id = 150 et cela fonctionne bien. Mais ensuite, il essaie de créer un élément et de lui attribuer id = 151, mais cet identifiant peut déjà exister, donc je vois cette erreur:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
Et la prochaine fois que j'exécuterai l'action, elle attribuera simplement l'id 152, ce qui fonctionnera bien si cette valeur n'est pas déjà prise. Comment puis-je obtenir des rails pour vérifier si un identifiant existe déjà avant de l'attribuer?
Merci!
ÉDITER
L'identifiant du camion est ce qui est dupliqué. L'utilisateur existe déjà et est une constante dans ce cas. C'est en fait un problème hérité que je dois régler. Une option consiste à recréer la table en laissant les rails attribuer automatiquement chaque id cette fois-ci. Je commence à penser que c'est peut-être le meilleur choix car j'ai quelques autres problèmes, mais la migration pour ce faire serait très compliquée car Truck est une clé étrangère dans tant d'autres tables. Y aurait-il un moyen simple de faire en sorte que les rails créent une nouvelle table avec les mêmes données déjà stockées sous Camion, avec des ID attribués automatiquement et en conservant toutes les relations existantes?