मैं जानता हूँ कि "belongs_to: के माध्यम से" मान्य नहीं है, इसकी सिर्फ अपनी प्रयास व्यक्त करने के लिए मैं क्या हासिल करना चाहते, बस एक सेकंड के लिए मेरे साथ सहन ...प्रत्यक्ष belong_to सेट किए बिना "belong_to: through" प्रकार का सेटअप कैसे करें?
यह मैं क्या मिल गया है:
class League
has_many :divisions
end
class Division
belongs_to :league
has_many :teams
end
class Team
belongs_to :division
has_many :players
end
class Player
belongs_to :team
end
अब, आदेश में एक "बेसबॉल कार्ड" दृश्य प्रपत्र बनाने के लिए, मैं की जरूरत है:
name
team.name
team.division.name
team.division.league.name
तो, वहाँ एक "belongs_to: के माध्यम से" सेटअप करने के लिए एक तरीका है सीधे से 'division.name' का उपयोग करने की 'टीम' के बिना 'players_ नियंत्रक'। उपसर्ग ?? मुझे 'प्लेयर' से 'डिवीजन' तक कई कॉलम एक्सेस करना है, इसलिए उन कॉलमों को "प्रत्यक्ष" पहुंच प्राप्त करने का एक तरीका ढूंढना है।
एक विकल्प 'खिलाड़ियों' तालिका में 'division_id' कॉलम शामिल करना है, लेकिन मुझे बताया गया है कि यह संबंधपरक डेटा मॉडल को तोड़ देगा, क्योंकि डेटा चयन कार्यक्षमता नहीं होने पर यह असंगतता की अनुमति देगी ठीक तरह से संभाला गया (उदाहरण के लिए प्लेयर ए टीम ए पर है जो विभाजन ए में है, लेकिन प्लेयर ए के पास डिवीजन_आईडी कॉलम विभाजन बी पर सेट है)।
क्या यह "प्रतीकात्मक लिंक" बनाना संभव है, उदा। 'डिवीजन' अब 'team.division' को संदर्भित करता है, और 'लीग' अब 'team.division.league' को संदर्भित करता है ??
या, हर बार पूर्ण पथ का उपयोग करने का एकमात्र सही विकल्प है ??
उम्मीद है कि कोई मदद कर सकता है।
बीआर, जोनास
हाय जोनास, कृपया मैट स्मिथ के उत्तर का चयन के रूप में इस के रूप में सही एक और अधिक सुरुचिपूर्ण दृष्टिकोण है। – emrass