5

में मॉडल विरासत, कारखाना पैटर्न और स्वयं-विश्लेषण, मैं ऐसी साइट के साथ काम कर रहा हूं जो कई अलग-अलग स्रोतों से फ़ीड खींच रहा है, और फिर उन धाराओं को एक सामान्य मॉडल में सहेज रहा है, इस मामले में एक विशेषता है। FeedEntry वर्ग के भीतर से कोड का एक उदाहरण हो सकता है:रूबी-ऑन-रेल

feed = Feedzirra::Feed.fetch_and_parse(feed_url) 
add_entries(feed.entries) 
... 

def self.add_entries(entries) 

    entries.each do |entry| 
     # Should know how to parse itself into a trait   
     @trait = parse(entry) 
     if @trait.save 
     ... 
    end 
end 

वैसे मैं एक जावा पृष्ठभूमि से आते हैं, और जावा यहाँ में, मैं एक विरासत पदानुक्रम की स्थापना होगा, और फिर FeedEntry से प्रत्येक उपवर्ग पर विस्तार पार्स विधि ताकि प्रत्येक फीडएन्ट्री को पता चले कि खुद को कैसे पार्स करना है। तो मेरे प्रश्न:
1) क्या यह रेलों में एक व्यवहार्य योजना है?
2) यदि हां, तो क्या कोई सिर्फ उस कॉलम को शामिल करेगा जो मूल रूप से "प्रकार" था जो कि फीडएन्ट्री का सबक्लास था?
3) यदि नहीं, तो ऐसा करने के सबसे कठिन तरीके पर कोई सुझाव?

धन्यवाद!

उत्तर

2

मुझे लगता है कि आप एकल तालिका विरासत का उपयोग कर सकते हैं जो रेल प्रदान करते हैं। संदर्भ लें: http://juixe.com/techknow/index.php/2006/06/03/rails-single-table-inheritance/ और http://api.rubyonrails.org/classes/ActiveRecord/Base.html

इसके बाद आप अपने "विरासत" वर्गों में से प्रत्येक में पार्स विधि जोड़ सकते हैं। आप पहले_सेव कॉलबैक जोड़ना और self.parse को कॉल करना चाहते हैं। मुझे यकीन नहीं है कि यह करने का सबसे कठिन तरीका है .. यह देखना दिलचस्प होगा कि दूसरे क्या कहते हैं।