कहें कि मेरे पास दो मॉडल, निदेशक और मूवी हैं, और एक तीसरे जुड़ने वाले मॉडल हैं जिन्हें निर्देश कहा जाता है। वे इस तरह के रूप में परिभाषित किया जाता है:has_many के साथ एसोसिएशन बनाना या अपडेट करना:
मूवी:
class Movie < ActiveRecord::Base
has_many :directions
has_many :directors, :through => :directions
end
निर्देशक:
class Director < ActiveRecord::Base
has_many :directions
has_many :movies, :through => :directions
end
दिशा:
class Direction < ActiveRecord::Base
belongs_to :movie
belongs_to :director
end
जब मैं एक फिल्म बनाता हूं जिसे मैं या तो आपूर्ति की गई जानकारी (नाम और imdb_id) के साथ एक निर्देशक बनाने में सक्षम होना चाहता हूं या imdb_id के आधार पर एक मौजूदा निदेशक ढूंढ सकता हूं और इसे मूवी रिकॉर्ड के साथ जोड़ सकता हूं।
अनिवार्य रूप से, मैं कभी भी एक निदेशक को हटाना या संपादित नहीं करना चाहता हूं। मैं केवल एक नया निदेशक बनाने में सक्षम होना चाहता हूं अगर वह अपने आईएमडीबी_आईडी के आधार पर अस्तित्व में नहीं है, या जब मैं फिल्म बना रहा हूं या संपादित कर रहा हूं तो पूर्व-मौजूदा निर्देशक के साथ सहयोग करना चाहता हूं।
मेरा सवाल है, मैं इसे सब कुछ दृश्य/नियंत्रक से कैसे जोड़ूं?
accepts_nested_attributes_for ठीक काम करता है छोड़कर आप वास्तव में निदेशक का नाम संपादित कर सकते हैं आप एक फिल्म है जो मैं नहीं चाहता संपादित कर रहे हैं जब। मुझे वास्तविक निदेशकों, केवल संघों को अद्यतन/नष्ट करने में बिल्कुल रूचि नहीं है।
धन्यवाद, जो मुझे वहां भाग लेता है। अंततः मेरे पास कुछ निर्देशक (सैकड़ों में) होंगे, इसलिए उन्हें प्रदर्शित करने से सभी काम नहीं करेंगे, लेकिन मैं इसे कुछ AJAX खोज जादू के साथ ठीक कर सकता हूं जो ठीक है। मेरे पास एक विशिष्ट उपयोग केस है जो मुझे यकीन नहीं है कि कैसे कार्यान्वित किया जाए। मान लें कि मैं स्टीवन स्पीलबर्ग के साथ एक निर्देशक के रूप में एक फिल्म बनाते हैं। तब मुझे एहसास हुआ कि उसने वास्तव में इसे निर्देशित नहीं किया लेकिन जेम्स कैमरून ने किया और मेरे पास अभी तक डीबी में जेम्स कैमरून नहीं है। आपके समाधान के साथ मैं स्टीवन स्पीलबर्ग को अनचेक कर सकता हूं लेकिन मैं जेम्स कैमरून को कैसे जोड़ूंगा और निदेशक डीबी रिकॉर्ड और एसोसिएशन कैसे बनाऊंगा? धन्यवाद! –