Şöyle yeni bir kayıt oluşturuyorum:
truck = Truck.create(:name=>name, :user_id=>2)
Veritabanımda şu anda kamyon için birkaç bin varlık var, ancak bazı kimlikleri kullanılabilir bırakacak şekilde kimlikleri birkaçına atadım. Yani olan şey, rayların id = 150 ile öğe oluşturması ve iyi çalışması. Ancak daha sonra bir öğe oluşturmaya ve ona id = 151 atamaya çalışır, ancak bu kimlik zaten mevcut olabilir, bu nedenle şu hatayı görüyorum:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
Ve eylemi bir dahaki sefere çalıştırdığımda, 152 no'lu id'yi atayacaktır, bu değer önceden alınmamışsa iyi çalışacaktır. Bir kimliğin atamadan önce var olup olmadığını kontrol etmek için rayları nasıl edinebilirim?
Teşekkürler!
DÜZENLE
Kamyon kimliği, kopyalanan şeydir. Kullanıcı zaten var ve bu durumda sabittir. Aslında ilgilenmem gereken eski bir konu. Bir seçenek, rayların bu sefer her kimliği otomatik olarak atamasına izin vererek tabloyu yeniden oluşturmaktır. Bunun en iyi seçenek olabileceğini düşünmeye başladım çünkü birkaç başka sorunum var, ancak bunu yapmak için geçiş çok karmaşık olacak çünkü Truck diğer pek çok tabloda yabancı bir anahtar. Rayların, Kamyon altında zaten depolanan aynı verilerle, otomatik olarak atanan kimliklerle ve mevcut tüm ilişkileri koruyarak yeni bir tablo oluşturmasını sağlamanın basit bir yolu olabilir mi?