मैं एक नया रिकॉर्ड बनाता हूँ जैसे:
truck = Truck.create(:name=>name, :user_id=>2)
मेरे डेटाबेस में वर्तमान में ट्रक के लिए कई हज़ार इकाइयाँ हैं, लेकिन मैंने उनमें से कई को आईडी की ज़िम्मेदारी सौंपी है, इस तरह से कुछ आईडी उपलब्ध हैं। तो क्या हो रहा है रेल आईडी = 150 के साथ आइटम बनाता है और यह ठीक काम करता है। लेकिन फिर यह एक आइटम बनाने और इसे आईडी = 151 आवंटित करने की कोशिश करता है, लेकिन यह आईडी पहले से ही मौजूद हो सकती है, इसलिए मैं यह त्रुटि देख रहा हूं:
ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey"
DETAIL: Key (id)=(151) already exists.
और अगली बार जब मैं कार्रवाई करता हूं, तो यह केवल आईडी 152 को असाइन करेगा, जो ठीक काम करेगा यदि वह मान पहले से नहीं लिया गया है। मैं यह जांचने के लिए रेल कैसे प्राप्त कर सकता हूं कि क्या यह असाइन करने से पहले ही एक आईडी मौजूद है?
धन्यवाद!
संपादित करें
ट्रक आईडी वह है जिसे डुप्लिकेट किया जा रहा है। उपयोगकर्ता पहले से मौजूद है और इस मामले में एक स्थिर है। यह वास्तव में एक विरासत का मुद्दा है जिससे मुझे निपटना है। एक विकल्प यह है कि इस बार के आसपास हर रेल आईडी को ऑटो रेल असाइन करने के लिए टेबल को फिर से बनाया जाए। मुझे लगता है कि यह सबसे अच्छा विकल्प हो सकता है क्योंकि मुझे कुछ अन्य समस्याएं हैं, लेकिन ऐसा करने के लिए प्रवास बहुत जटिल होगा क्योंकि ट्रक कई अन्य तालिकाओं में एक विदेशी कुंजी है। क्या कोई सरल तरीका होगा कि रेल के नीचे पहले से संग्रहीत डेटा के साथ ही ऑटो-असाइन की गई आईडी और सभी मौजूदा रिश्तों को बनाए रखने के लिए रेल एक नई तालिका बनाएं?