Я создаю новую запись, например:
truck = Truck.create(:name=>name, :user_id=>2)
В моей базе данных в настоящее время имеется несколько тысяч объектов для грузовика, но я назначил идентификатор нескольким из них, таким образом, чтобы оставить некоторый идентификатор доступным. Итак, что происходит, рельсы создают элемент с id = 150, и он отлично работает. Но затем он пытается создать элемент и назначить его id = 151, но этот идентификатор может уже существовать, поэтому я вижу эту ошибку:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
И в следующий раз, когда я запустим действие, он просто назначит id 152, который будет работать нормально, если это значение еще не принято. Как я могу получить рельсы, чтобы проверить, существует ли идентификатор до его назначения?
Спасибо!
ИЗМЕНИТЬ
Идентификатор Truck - это то, что дублируется. Пользователь уже существует и является константой в этом случае. Фактически это проблема, с которой мне приходится иметь дело. Один из вариантов заключается в том, чтобы воссоздать таблицу, чтобы позволить рельсам автоматически назначать каждый идентификатор на этот раз. Я начинаю думать, что это лучший выбор, потому что у меня есть еще несколько проблем, но миграция для этого будет очень сложной, потому что Truck - это внешний ключ во многих других таблицах. Будет ли простой способ иметь рельсы для создания новой таблицы с теми же данными, которые уже хранятся под грузовиком, с автоматическим назначением идентификатора и поддержанием всех существующих отношений?