2010-11-03 2 views
1

J'utilise Feedzirra depuis un certain temps pour saisir des flux simples et les analyser sans problème, mais j'essaie d'exécuter deux flux distincts de feedburner et je sais qu'ils fonctionnent seuls mais les deux produisent une erreur.Feedzirra avec plusieurs flux

NoMethodError in Feed entryController#index 
undefined method `title' for #<Array:0x1042f9590> 

Mon modèle ressemble à ceci:

def self.get_feeds 
    feed_urls = ["feed_1", "feed_2"] 
    update_from_feeds(feed_urls) 
    end 

    def self.update_from_feeds(feed_urls) 
    feeds = Feedzirra::Feed.fetch_and_parse(feed_urls) 
    add_entries(feeds.entries) 
    end 

    def self.update_from_feeds_continuously(feed_urls, delay_interval = 30.seconds) 
    feeds = Feedzirra::Feed.fetch_and_parse(feed_urls) 
    add_entries(feed.entries) 
    loop do 
     sleep delay_interval 
     feeds = Feedzirra::Feed.update(feeds.entries) 
     add_entries(feeds.new_entries) if feeds.updated? 
    end 
    end 

    private 

    def self.add_entries(entries) 
    entries.each do |entry| 
     unless exists? :guid => entry.id 
     create!(
      :title  => entry.title 
     ) 
     end 
    end 
    end 

Il est probablement quelque chose que je fais mal, mais je ne peux pas trouver des exemples de code complet ou des tutoriels pour l'analyse des flux multiples, seulement les deux lignes de code sur la page github.

Merci d'avance!

Répondre

1

Lorsque feeds est renvoyé dans update_from_feeds du fetch_and_parse, il est un tableau lorsque plusieurs flux sont transmis. En tant que tel, le eachadd_entries dans le procédé se scinde en flux individuels, et non pas alimenter les entrées. Pour y remédier, vous pouvez redéfinir update_from_feeds comme suit:

def self.update_from_feeds(feed_urls) 
    feeds = Feedzirra::Feed.fetch_and_parse(feed_urls) 
    feeds.each do |feed_url, feed| 
    add_entries(feed.entries) 
    end 
end 

Cela suppose que vous serez toujours de passage multiples URL du flux de la update_from_feeds (ou une URL unique dans un tableau)

+0

Cela signifie également que vous devez modifier ' update_from_feeds_continuously' aussi bien – William

+0

A travaillé parfaitement. J'ai pensé. Bravo pour l'aide. Je suis assez nouveau pour Rails et Ruby, alors merci! – Synthesezia

Questions connexes