我创建了一个新的记录,如下所示:
truck = Truck.create(:name=>name, :user_id=>2)
我的数据库里目前有几千个云梯车的实体,但我把 ID 分配给了其中几个,这样就留下了一些 ID。因此,现在的情况是,Rail 创建 id = 150的 item,并且它工作得很好。但是它会尝试创建一个条目并赋值它 id = 151,但是这个 id 可能已经存在了,所以我看到了这个错误:
下一次我运行这个操作时,它将简单地分配 id 152,如果没有使用这个值,那么它将很好地工作。如何在分配 ID 之前获得 ails 来检查 ID 是否已经存在? 谢谢! 剪辑 正在复制的是卡车的 ID。用户已经存在,在本例中是常量。实际上这是我必须处理的遗产问题。其中一个选择是重新创建表,以便 Rails 这次自动分配每个 id。我开始认为这可能是最好的选择,因为我还有其他一些问题,但是这样做的迁移将是非常复杂的,因为 Truck 在许多其他表中都是一个外键。有没有一种简单的方法,让 ails 创建一个新表,其中的数据与 Truck 下已经存储的数据相同,并且具有自动分配的 ID 和维护所有现有的关系?ActiveRecord: : RecordNotUnique (PG: : ERROR: ERROR: 重复键值违反唯一约束“ Companies _ pkey”
密钥(id) = (151)已经存在