Creo un nuevo registro así:
truck = Truck.create(:name=>name, :user_id=>2)
Mi base de datos tiene actualmente varios miles de entidades para camiones, pero asigné las identificaciones a varias de ellas, de una manera que dejó algunas identificaciones disponibles. Entonces, lo que está sucediendo es que los rieles crean un elemento con id = 150 y funciona bien. Pero luego intenta crear un elemento y asignarle id = 151, pero es posible que ese id ya exista, así que veo este error:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
Y la próxima vez que ejecute la acción, simplemente asignará el id 152, que funcionará bien si ese valor aún no se ha tomado. ¿Cómo puedo hacer que los rieles comprueben si ya existe un ID antes de que lo asigne?
¡Gracias!
EDITAR
La identificación del camión es lo que se está duplicando. El usuario ya existe y es una constante en este caso. En realidad, es un problema heredado con el que tengo que lidiar. Una opción es volver a crear la tabla y dejar que los rieles asignen automáticamente cada identificación esta vez. Empiezo a pensar que esta puede ser la mejor opción porque tengo algunos otros problemas, pero la migración para hacer esto sería muy complicada porque Truck es una clave externa en muchas otras tablas. ¿Habría una manera sencilla de que rieles crearan una nueva tabla con los mismos datos que ya están almacenados en Truck, con ID asignados automáticamente y manteniendo todas las relaciones existentes?