यहां स्थिति है।Mongoid foreign_key को पूर्णांक के रूप में कैसे सहेजने के लिए या मूल मॉडल को रखने के लिए इंटीजर आईडी
user embed_one profile
profile belongs_to city
मैं
id as Integer
name as String
अब मैं user.update_attributes(:profile_attributes{:city_id=>"5"})
कर रहा हूँ एक ब्राउज़र प्रपत्र प्रस्तुत करने का अनुकरण के साथ एक शहर तालिका ले लिया है। फिर मैं user.profile
देखता हूं, मुझे लगता है कि city_id स्ट्रिंग के रूप में संग्रहीत है। यह शून्य देने के लिए मेरे user.profile.city
प्रस्तुत करता है।
मुझे आश्चर्य है कि यहां क्या करना सही है। क्या मुझे अपना शहर आईडी स्ट्रिंग या बीएसओएन ऑब्जेक्ट होना चाहिए? या क्या मुझे mongoid store city_id को पूर्णांक के रूप में बनाने के लिए update_attributes को अवरुद्ध करने का प्रयास करना चाहिए? शहर के लिए आईडी के रूप में इंटीजर का उपयोग करने का कारण यह है क्योंकि मैंने सोचा था कि इंटीजर के माध्यम से खोज स्ट्रिंग के माध्यम से खोज से तेज है। और मेरे पास राज्य और शहर की टेबल भी हैं और मैं उम्मीदवारों से आईड्स से मेल खाना चाहता हूं इसलिए मैं बीएसओएन रैंडोम कुंजी का उपयोग नहीं करना चाहता हूं।
जैसे कोड के साथ belong_to अनुकरण कर सकते हैं यह आशाजनक लग रहा है। लेकिन यह समस्या जोड़ने के लिए कई विधियां हो सकती हैं यदि समस्या कई तालिकाओं और कई विशेषताओं से संबंधित है। अच्छा होगा अगर मैं स्ट्रिंग पैरा को पूर्णांक में स्वचालित रूप से परिवर्तित कर सकता हूं यदि मैं उन गुणों को पूर्णांक के रूप में घोषित करता हूं। बंदरगाह के लिए बंदर बंदरगाह, शायद? – benzhang
बीसन वस्तुओं के साथ क्या समस्या है? – rwz
मैं सिटी स्टेटस टेबल पोर्ट कर रहा हूं। और मैं पूर्णांक को राज्य की आईडी बनना चाहता हूं, इसलिए मेरा शहर सही स्थिति को संदर्भित करता है। मुझे लगता है कि मैं विदेशी कुंजी के रूप में एक अलग विशेषता का उपयोग कर सकता हूं तो मैं बीएस को आईडी के रूप में नहीं मानूंगा। – benzhang