चूंकि मानचित्र उनका अपना संग्रह है, इसलिए आपको अपने खिलाड़ी द्वारा संदर्भित स्थान की खोज करने वाले प्रत्येक मानचित्र संग्रह पर पुनरावृति करने की आवश्यकता होगी।
आप सीधे एम्बेडेड दस्तावेज़ों तक नहीं पहुँच सकते। आपको संग्रह के माध्यम से प्रवेश करना होगा और अपने तरीके से काम करना होगा।
सभी मानचित्रों की पुनरावृत्ति से बचने के लिए आप अपने प्लेयर दस्तावेज़ में स्थान संदर्भ और मानचित्र संदर्भ दोनों को संग्रहीत कर सकते हैं। यह आपको मानदंडों को श्रृंखलाबद्ध करने की अनुमति देता है जो आपके मानचित्र और फिर उसके भीतर स्थान का चयन करता है। इसे संभालने के लिए आपको अपने प्लेयर क्लास पर एक मेथड को कोड करना होगा।
def location
self.map.locations.find(self.location_id)
end
इसलिए, ठीक उसी तरह जैसे आपने स्वयं को उत्तर दिया, सिवाय इसके कि आप अभी भी अपने प्लेयर दस्तावेज़ में कोर्ड एट्रिब का उपयोग करने के बजाय स्थान_आईडी संग्रहीत कर सकते हैं।
दूसरा तरीका यह होगा कि आप अपने मानचित्र संग्रह में स्थान को एम्बेड करने के बजाय अपने स्वयं के संग्रह में मानचित्र, स्थान और खिलाड़ी रखें। तब आप कुछ भी फैंसी किए बिना संदर्भ संबंधों का उपयोग कर सकते थे ... हालांकि आप वास्तव में केवल एक पदानुक्रमित डेटाबेस का उपयोग करना पसंद करते हैं, यह इस बिंदु पर एक संबंधपरक डेटाबेस है ...