Rails автоматически назначает идентификатор, который уже существует

Я создаю новую запись примерно так:

truck = Truck.create(:name=>name, :user_id=>2)

В моей базе данных в настоящее время есть несколько тысяч объектов для грузовика, но я присвоил идентификаторы нескольким из них, так что некоторые идентификаторы были доступны. Итак, что происходит, rails создает элемент с id = 150, и он отлично работает. Но затем он пытается создать элемент и присвоить ему id = 151, но этот идентификатор может уже существовать, поэтому я вижу эту ошибку:

ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey" DETAIL: Key (id)=(151) already exists.

И в следующий раз, когда я выполню действие, оно просто назначит идентификатор 152, который будет работать нормально, если это значение уже не принято. Как я могу получить рельсы, чтобы проверить, существует ли идентификатор, прежде чем он присваивает его?

Спасибо!

РЕДАКТИРОВАТЬ

Идентификатор грузовика - это то, что дублируется. Пользователь уже существует и является константой в этом случае. На самом деле это проблема наследия, с которой мне приходится иметь дело. Один из вариантов, это воссоздать таблицу, позволяя rails автоматически назначать каждый идентификатор на этот раз. Я начинаю думать, что это может быть лучшим выбором, потому что у меня есть несколько других проблем, но миграция для этого будет очень сложной, потому что Truck является внешним ключом во многих других таблицах. Будет ли простой способ заставить рельсы создать новую таблицу с теми же данными, уже сохраненными в Truck, с автоматически назначенными идентификаторами и сохранением всех существующих связей?

Ответы на вопрос(4)

Ваш ответ на вопрос