मेरे पास एक पेड़ संरचना में श्रेणियां हैं। मैं प्रत्येक के लिए माता-पिता को परिभाषित करके उन्हें एक साथ जोड़ने की कोशिश कर रहा हूं। (मैं यह नहीं समझ सका कि संपत्ति parent
पर कॉल कैसे करें, इसलिए यह अभी के लिए category
है, लेकिन इसका मतलब माता-पिता है)।एक मॉडल बनाना जिसमें पेड़ संरचना है
class Category < ActiveRecord::Base
has_one :category # the parent category
end
लेकिन संबंध गलत तरीके से समाप्त होता है।
गेटर समारोह बच्चा श्रेणी (सही) पर है, लेकिन category_id
माता पिता पर संग्रहीत है:
parent = Category.create(:name => "parent")
child = Category.create(:name => "child", :category => parent)
parent.id # 1
child.id # 2
child.category_id # nil
parent.category_id # 2
child.category.name # "parent" (!!)
माता पिता कई बच्चों तो यह काम करने के लिए नहीं जा रहा है के लिए सक्षम होने की जरूरत है।
मैं एड्रियानो से सहमत हूं, यह काम नहीं करता है। जब मैं 'obj.parent' जैसा कुछ करता हूं, तो चलने वाली क्वेरी कुछ है' objs का चयन करें। * Objs से objs.parent_id = 3' सही दिखें? खैर obj.parent_id 3 नहीं है, लेकिन यह आईडी है। 'बच्चों की विधि हालांकि काम करती है। – DJTripleThreat
मैं इसके बजाय ऐसा करके अपना उत्तर सही करने में सक्षम था: 'belong_to: parent,: class_name =>" श्रेणी ",: विदेशी_की =>: आईडी,: primary_key =>: parent_id' – DJTripleThreat
@DJTripleThreat आपको यकीन है कि आपने ' आपके 'belong_to' एसोसिएशन पर 'विदेशी_की' सेट नहीं है या माता-पिता पर विदेशी कुंजी (' belong_to') डालें? यहां जानकारी का महत्वपूर्ण भाग यह है कि आप बच्चे ऑब्जेक्ट पर किसी कुंजी से मूल ऑब्जेक्ट का संदर्भ दे रहे हैं, इस प्रकार जब आप 'child.parent' को कॉल करते हैं तो आपको 'SELECT मॉडल' जैसी क्वेरी मिल जाएगी। * मॉडल से जहां id = child.parent_id LIMIT 1'। – coreyward