ฉันสร้างสถิติใหม่ดังนี้:
truck = Truck.create(:name=>name, :user_id=>2)
ขณะนี้ฐานข้อมูลของฉันมีเอนทิตีสำหรับรถบรรทุกหลายพันรายการ แต่ฉันกำหนดรหัสให้กับหลาย ๆ รายการในลักษณะที่ทำให้มี ID บางส่วน สิ่งที่เกิดขึ้นคือรางสร้างรายการที่มี id = 150 และใช้งานได้ดี แต่มันพยายามสร้างไอเท็มและกำหนด id = 151 แต่ id นั้นอาจมีอยู่แล้วดังนั้นฉันจึงเห็นข้อผิดพลาดนี้:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
และในครั้งต่อไปที่ฉันเรียกใช้แอคชันมันจะกำหนด id 152 ซึ่งจะทำงานได้ดีหากยังไม่ได้ใช้ค่านั้น ฉันจะรับรางเพื่อตรวจสอบว่ามี ID อยู่แล้วก่อนกำหนดได้อย่างไร
ขอบคุณ!
แก้ไข
รหัสรถบรรทุกคือสิ่งที่ถูกทำซ้ำ มีผู้ใช้อยู่แล้วและเป็นค่าคงที่ในกรณีนี้ จริงๆแล้วมันเป็นปัญหาเดิมที่ฉันต้องจัดการ ทางเลือกหนึ่งคือการสร้างตารางขึ้นมาใหม่โดยให้รางอัตโนมัติกำหนดทุก id ในครั้งนี้ ฉันเริ่มคิดว่านี่อาจเป็นทางเลือกที่ดีที่สุดเพราะฉันมีปัญหาอื่น ๆ อีกเล็กน้อย แต่การย้ายข้อมูลเพื่อทำสิ่งนี้จะซับซ้อนมากเพราะ Truck เป็นคีย์ต่างประเทศในตารางอื่น ๆ จะมีวิธีง่ายๆในการสร้างรางสร้างตารางใหม่ด้วยข้อมูลเดิมที่เก็บไว้แล้วใน Truck โดยใช้ ID ที่กำหนดอัตโนมัติและรักษาความสัมพันธ์ที่มีอยู่ทั้งหมดหรือไม่?