2010-02-24 14 views
14

मैं एक साल के मॉडल और पाठ्यक्रम मॉडल के साथ एक आवेदन विकसित कर रहा हूं। वर्तमान में a________________________________________________________________________________ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ "जॉइन टेबल में अतिरिक्त डेटा जोड़ें - रेल

नया फ़ील्ड "अनिवार्य" नामक एक बूलियन मान है।

क्या ऐसा करने का कोई आसान या अच्छा तरीका है?

उत्तर

13

:has_many => :through एसोसिएशन का उपयोग करने के लिए स्विच करें, जिसे विशेष रूप से जब आप एक मॉडल में शामिल होने की आवश्यकता होती है तो डिज़ाइन किया गया है। ActiveRecord Associations Rails Guide में और विवरण हैं।

+0

बहुत धन्यवाद, मेरे अनुवर्ती प्रश्न के लिए कोई विचार? http://stackoverflow.com/questions/2328273/add-fields-for-has-many-through-relationship-extra-data-rails – Jack

12

आप एक मॉडल में शामिल होना चाहते हैं। मैं इसे "पाठ्यक्रम वर्ष" कहूंगा क्योंकि तब आपको अपना टेबल नाम बदलने की जरूरत नहीं है, लेकिन यदि आप चाहें तो आप उस डेटा को दूसरे मॉडल में भी ले जा सकते हैं। यदि आपके मॉडल इस तरह सेटअप होगा:

class Courses < ActiveRecord::Base 
    has_many :courses_years 
    has_many :years, :through => :courses_years 
end 

class Years < ActiveRecord::Base 
    has_many :courses_years 
    has_many :courses, :through => :courses_years 
end 

class CoursesYears < ActiveRecord::Base 
    belongs_to :course 
    belongs_to :year 
end 

जब भी आप गुण (इस मामले में अनिवार्य) की जरूरत है आप सामान्य रूप से शामिल होने के मॉडल के माध्यम से उस तक पहुँच। यदि आप केवल उन सभी पाठ्यक्रमों को ढूंढना चाहते हैं जो किसी दिए गए वर्ष के लिए अनिवार्य हैं, तो प्रश्न का उत्तर here है।

+0

बहुत बहुत धन्यवाद, मैं विकल्प तालिका के नाम के रूप में विकल्पों के लिए गया था। हालांकि मेरे नए पाठ्यक्रम के रूप में बुलियन मूल्य जोड़ने में परेशानी हो रही है। कोई विचार? http://stackoverflow.com/questions/2328273/add-fields-for-has-many-through-relationship-extra-data-rails – Jack

+3

मॉडल वर्ग के नाम एकवचन रूप में होना चाहिए: पाठ्यक्रम -> पाठ्यक्रम; साल -> वर्ष; पाठ्यक्रम वर्ष -> कोर्स वर्ष –

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