आप निम्न करने के लिए अपने संबंध परिभाषाओं को बदलने की कोशिश कर सकते हैं:
has_many :child_sites, :class_name => 'Site', :cyclic => true
belongs_to :parent_site, :class_name => 'Site', :cyclic => true
मुझे नहीं पता पता है कि यह वास्तव में क्या करता है, लेकिन मुझे याद है कि यह Mongoid Google समूह में चर्चा की जा रही है। यदि यह काम नहीं करता है, तो आपको संबंध मैक्रोज़ दोनों पर inverse_of
सेट करने का प्रयास करना चाहिए। अधिकांश समय inverse_of
सेटिंग नौकरी सही ढंग से करता है।
has_many :child_sites, :class_name => 'Site', :inverse_of => :parent_site
belongs_to :parent_site, :class_name => 'Site', :inverse_of => :child_sites
अतिरिक्त प्रश्नों के बारे में, हाँ वहाँ अतिरिक्त प्रश्नों जब भी आप एक साइट या किसी साइट का मूल साइट के child_sites लाने के लिए चाहते हो जाएगा।
आपको मूल साइट पर बाल साइटों को एम्बेड करने पर विचार करना चाहिए, लेकिन इस बात को ध्यान में रखें कि आप बच्चों की साइट को स्टैंडअलोन तरीके से पूछने की क्षमता खो देंगे। आपको हमेशा किसी भी बच्चे साइट को "parent_site> child_sites" के रूप में एक्सेस करना होगा।
दस्तावेज़ के आकार पर 16 एमबी सीमा को ध्यान में रखें, जो पहुंचने में मुश्किल है, लेकिन यदि संभव हो तो माता-पिता के लिए बहुत सी बच्चे साइटें हों और यदि आप टेम्पलेट जानकारी संग्रहीत कर रहे हैं, जैसे एचटीएमएल, सीएसएस इत्यादि। दस्तावेज़ में ही।
सुनिश्चित नहीं है कि आपकी विशिष्ट समस्या क्या है लेकिन यह एक बहुत ही मोंगोडब अनुकूल स्कीमा नहीं है। ध्यान दें कि एक अवधारणा के रूप में "संबंध" मोंगोडब में मौजूद नहीं हैं, इसलिए उपरोक्त कई प्रश्नों के परिणामस्वरूप (प्रत्येक "रिश्ते" को ड्राइवर द्वारा अलग-अलग पूछताछ की जानी चाहिए)। –
सलाह के लिए धन्यवाद, एक मूल साइट बनाने के लिए सबसे अच्छा तरीका क्या है जिसमें एक बच्चा साइट है? – Alex