मेरे पास दो मचान-जेनरेट मॉडल हैं, छात्र और कक्षा। उनके पास has_and_belongs_to_many के साथ लागू कई से अधिक संबंध हैं।
मैं बदलने के लिए जो वर्ग एक छात्र रूप में अच्छी तरह है जो के रूप में छात्र रों प्रत्येक वर्ग ले जा रहे हैं es सक्षम होने के लिए करना चाहते हैं। यही है, मैं छात्र के कक्षा परिवर्तनीय (इसमें से आइटम जोड़ने और निकालने) को संशोधित करना चाहता हूं और इसके विपरीत।
मैं इसे कैसे कर सकता हूं?
मैं कक्षाएं सूची एक छात्र से एक वर्ग को हटाने कर रहा हूँ, तो ऐसा लगता है जैसे मैं अपने students_controller पर अद्यतन कॉल करना चाहते हैं। यदि यह मामला है, तो कक्षा चर को संशोधित करने के लिए पैरामीटर के रूप में मुझे क्या पास करना चाहिए? वर्ग es का एक और संग्रह (उचित वर्ग हटा दिया गया है)?
मेरा दूसरा विचार केवल छात्रों_कंट्रोलर (कहें, remove_class) में कुछ कार्रवाई करने के लिए है और हटाए जाने के लिए कक्षा की आईडी में पास करें। यह सनसनीखेज लगता है लेकिन भरोसेमंद नहीं है।मैं एक हैश_and_belongs_to_many संग्रह को अद्यतन कैसे अपडेट करूं?
ऐसा करने का सबसे अच्छा तरीका क्या है?
धन्यवाद, यह दो मामूली परिवर्तनों के साथ वास्तव में अच्छा काम करता है: 1. कॉलिंग @ student.courses.destroy (पैराम्स [: कोर्स_आईडी]) ने मुझे एक ActiveRecord :: AssociationTypeMismatch दिया क्योंकि यह कोर्स की तलाश में था और एक स्ट्रिंग मिला। मैंने इसे सही पाठ्यक्रम (@ student.courses.find (पैराम्स [: course_id]) ढूंढकर पहले तय किया) और फिर इसे हटा दिया। 2. मैं कोर्स को नष्ट नहीं करना चाहता हूं, बस एसोसिएशन को हटा दें, इसलिए मैंने –
को नष्ट करने के बजाए एक डिलीट कॉल का उपयोग किया। मैंने आपके परिवर्तनों को दर्शाने के लिए अपना उदाहरण अपडेट कर लिया है। – austinfromboston