Eu crio um novo registro assim:
truck = Truck.create(:name=>name, :user_id=>2)
Meu banco de dados atualmente tem vários milhares de entidades para caminhão, mas atribuí os ids a várias delas, de forma que deixei alguns ids disponíveis. Então o que está acontecendo é que o rails cria um item com id = 150 e funciona bem. Mas então ele tenta criar um item e atribuir a ele id = 151, mas esse id pode já existir, então estou vendo este erro:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
E da próxima vez que eu executar a ação, ela simplesmente atribuirá o id 152, que funcionará bem se esse valor ainda não tiver sido usado. Como faço para que os trilhos verifiquem se um ID já existe antes de atribuí-lo?
Obrigado!
EDITAR
O ID do caminhão é o que está sendo duplicado. O usuário já existe e é uma constante neste caso. Na verdade, é um problema de legado com o qual tenho que lidar. Uma opção é recriar a tabela em let rails auto designar cada id desta vez. Estou começando a achar que essa pode ser a melhor escolha porque estou tendo alguns outros problemas, mas a migração para fazer isso seria muito complicada porque Truck é uma chave estrangeira em muitas outras tabelas. Haveria uma maneira simples de os trilhos criarem uma nova tabela com os mesmos dados já armazenados em Truck, com IDs atribuídos automaticamente e mantendo todos os relacionamentos existentes?