रेल पर रूबी का उपयोग करके, मैं एक पॉलिमॉर्फिक has_many
रिश्ते को कैसे प्राप्त कर सकता हूं जहां मालिक हमेशा ज्ञात होता है लेकिन एसोसिएशन में आइटम कुछ पॉलिमॉर्फिक (लेकिन समरूप) प्रकार का होता है, जो कि एक कॉलम द्वारा निर्दिष्ट होता है मालिक? उदाहरण के लिए, Producer
कक्षा has_many
उत्पादों का मानना है लेकिन निर्माता उदाहरणों में वास्तव में कई साइकिलें, या पोप्सिकल्स या शॉलेस हो सकती हैं। मैं आसानी से प्रत्येक उत्पाद वर्ग (साइकिल, पोप्सिकल, आदि) के पास belongs_to
निर्माता के साथ संबंध रख सकता हूं लेकिन एक निर्माता उदाहरण दिया गया है कि यदि वे अलग-अलग प्रकार के होते हैं (प्रति उत्पादक उदाहरण) तो मैं उत्पादों का संग्रह कैसे प्राप्त कर सकता हूं?रेल पॉलीमोर्फिक है_मनी
रेल पॉलिमॉर्फिक संघों उत्पादकों को कई उत्पादों से संबंधित होने की अनुमति देता है, लेकिन मुझे रिश्ते को अन्य तरीकों से होने की आवश्यकता है।
class Bicycle < ActiveRecord::Base
belongs_to :producer
end
class Popsicle < ActiveRecord::Base
belongs_to :producer
end
class Producer < ActiveRecord::Base
has_many :products, :polymorphic_column => :type # last part is made-up...
end
तो मेरी निर्माता तालिका पहले से ही एक "प्रकार" कॉलम जो मेरे जैसे कुछ करने जाने के लिए कुछ उत्पाद वर्ग से मेल खाती है (उदाहरण के लिए साइकिल, Popsicle, आदि), लेकिन मैं रेल कैसे प्राप्त कर सकते हैं:
उदाहरण के लिए>> bike_producer.products
#=> [[email protected], [email protected], ...]
>> popsicle_producer.products
#=> [[email protected], [email protected], ...]
क्षमा करें अगर यह स्पष्ट है या एक सामान्य दोहराव है; मुझे आसानी से इसे प्राप्त करने में आश्चर्यजनक कठिनाई हो रही है।
बस एक नोट के रूप में, मैं दृढ़ता से फैक्टरी एक मॉडल नाम के रूप में उपयोग करने के खिलाफ सलाह देते हैं factory_girl के रूप में जुड़नार के बजाय मॉडल बनाने के लिए उपयोग एक बहुत अधिक इस्तेमाल किया विस्तार है, और यह अपने कोड को पढ़ने के लोगों के लिए बहुत भ्रामक हो सकता है। –
@jamie - टिप के लिए धन्यवाद, मैंने शब्दावली को "निर्माता" पर स्विच किया है, जो उम्मीद है कि किसी भी समवर्ती पुस्तकालयों के साथ भ्रमित नहीं होगा =) – maerics
कोई समस्या नहीं। इसके अलावा, मुझे इसका कोई अच्छा समाधान नहीं मिला है। जहां तक मुझे पता है, किसी वस्तु के लिए पॉलिमॉर्फिक बच्चे होने की क्षमता अभी तक रेल में मौजूद नहीं है। यद्यपि संदर्भ के लिए आप http://blog.hasmanythrough.com/2006/4/3/polymorphic-through जांच सकते हैं। –