ruby on rails - ActiveRecord has_many where two columns in table A are primary keys in table B -


मेरे पास एक मॉडल है, युगल , जिसमें दो कॉलम हैं, first_person_id और second_person_id और अन्य मॉडल, व्यक्ति , जिसका प्राथमिक कुंजी person_id है और उसमें स्तंभ नाम

यहाँ मैं चाहता हूं कि उपयोग किया गया है:

  # उत्सुक लोडिंग के लिए 'व्यक्ति' मॉडल को शामिल करना, यह मेरे लिए महत्वपूर्ण है c = युगल.फंड (: सभी,: शामिल = & gt;: व्यक्तियों) [0] "# {cfirst_person.name} और # {c.second_person.name}" डालता है  

तो मैं यह कैसे कर सकता हूं?

युगल में घोषित संबंध इस तरह दिखना चाहिए:

  class युगल नामित_स्स्कोप: with_people, {: शामिल = & gt; [: प्रथम_प्रमुख,: दूसरे व्यक्ति]} संबंधित_तो: प्रथम_परिवर्तक,: class_name = & gt; 'व्यक्ति' belongs_to: second_person, class_name = & gt; 'व्यक्ति' अंत # यूसेज: युगल.विंडो_ लोक.पहले # = & gt; & Lt; युगल ... @ फर्स्ट_पेडर: & lt; व्यक्ति ... & gt ;, @second_person: & lt; व्यक्ति ... & gt; & gt;  

उन व्यक्ति में ये निर्भर करते हैं कि क्या एक व्यक्ति एक से अधिक का एक भाग हो सकता है युगल यदि कोई व्यक्ति केवल एक युगल से संबंधित हो सकता है और एक पर "पहले" व्यक्ति नहीं हो सकता है और दूसरा दूसरे पर, आप चाहते हो सकता है: <पूर्व> वर्ग के व्यक्ति के पास है: couple_as_first_person,: foreign_key = & gt; 'First_person_id' ,: class_name = & gt; 'युगल' के पास है: couple_as_second_person,: foreign_key = & gt; 'Second_person_id' ,: class_name = & gt; 'युगल' डीईएफ़ दंपति couple_as_first_person || यदि कोई व्यक्ति कई युगल से संबंधित हो सकता है, और यह कहने का कोई रास्ता नहीं है कि क्या वे " पहले "या" सेकंड "किसी भी युगल में, आप चाहते हो सकता है:

  वर्ग के पास व्यक्ति है: जोड़ों_अस_first_person,: foreign_key = & gt; 'First_person_id' ,: class_name = & gt; 'युगल' के पास है: जोड़ों_स_सैकंड_परि, विदेशी_की = & gt; 'Second_person_id' ,: class_name = & gt; 'युगल' डीएफ़ जोड़ों couples_as_first_person + जोड़ों_स_सेकंड_पर एंड एंड  

Comments

Popular posts from this blog

oracle - The fastest way to check if some records in a database table? -

php - multilevel menu with multilevel array -

jQuery UI: Datepicker month format -