2009-07-23 12 views
12

मेरे पास दो मॉडल, ट्री नोड और उपयोगकर्ता हैं। प्रत्येक उपयोगकर्ता has_one वृक्ष नोड, जो पेड़ की जड़ है।रेल नामकरण संगठन

class TreeNode 
    acts_as_tree 
    belongs_to :user 
end 

class User 
    has_one :tree_node 
end 

मैं इतना है कि रेल संघ बनाने के लिए इतना है कि मैं

User.first.tree_node 

की

User.first.tree 

की तरह कुछ कर सकते हैं बजाय होगा एक करने के बारे में कैसे जाना होगा इस स्थापना करना चाहते हैं कुछ इस तरह?

उत्तर

23
has_one :tree, :class_name => "TreeNode" 

ध्यान रखें, इस tree_nodes तालिका में user_id नामक एक विदेशी कुंजी मान लिया गया है।

संपादित: यदि वह काम नहीं करता, तो आप सकता विदेशी कुंजी (:foreign_key => :user_id) निर्दिष्ट करने की जरूरत है, लेकिन मैं ऐसा नहीं सोचता।

+0

धन्यवाद, यह काम करता है! मुझे पता था कि ऐसा करने का कोई आसान तरीका था। –

3

जाहिर है: class_name को प्रतिस्थापित कर दिया गया है: स्रोत।

+4

[रेल एसोसिएशन गाइड] के अनुसार (http://guides.rubyonrails.org/association_basics.html), दोनों: class_name और: स्रोत अभी भी मौजूद है। : स्रोत 'है_ऑन ...: के माध्यम से स्रोत एसोसिएशन को निर्दिष्ट करने के लिए है –

संबंधित मुद्दे