Sto lavorando con un sito che estrae i feed da molte fonti diverse e quindi li salva in un modello comune, in questo caso è un tratto. Un esempio del codice all'interno della classe FeedEntry potrebbe essere:Modello ereditario, modello di fabbrica e auto-analisi in Ruby-on-Rails
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
Certo io vengo da un background di Java, e in java qui, vorrei impostare un gerarchia eredità, e poi su ogni sottoclasse di FeedEntry estendere la analizzare il metodo in modo che ogni FeedEntry sapesse come analizzarsi. Quindi le mie domande:
1) Si tratta di un piano fattibile in binari?
2) In tal caso, si dovrebbe includere solo una colonna che era fondamentalmente "tipo" che diceva quale sottoclasse era FeedEntry?
3) In caso negativo, qualche suggerimento sul modo DRYest per farlo?
Grazie!