Rails多个RSS Feed解析

时间:2014-02-26 23:42:59

标签: ruby-on-rails

我是铁杆新手,需要弄清楚如何做点什么。我正在使用Feedzirra gem并在FeedEntry模型中有一个名为update_from_feed的方法。目前这使用rails控制台。

如何从feeds表中传入所有rss feed url,以便我可以解析所有rss feed并将其保存到feed_entries表?我想我需要从feed表中获取url并以某种方式创建一个feed url数组,循环遍历它,然后将数组传递给update_from_feed方法。我不知道该怎么做。这是当前的FeedEntry模型:

class FeedEntry < ActiveRecord::Base
  attr_accessible :guid, :name, :published_at, :summary, :url

  belongs_to :feed

  def self.update_from_feed(feed_url)
    feed = Feedzirra::Feed.fetch_and_parse(feed_url)
    add_entries(feed.entries)
  end

  private

  def self.add_entries(entries)
    entries.each do |entry|
      unless exists? :guid => entry.id
        create!(
          :name => entry.title,
          :summary => entry.summary,
          :url => entry.url,
          :published_at => entry.published,
          :guid => entry.id
        )
      end
    end
  end
end

1 个答案:

答案 0 :(得分:1)

您可以通过将以下方法添加到Feed模型来执行此操作:

class Feed < ActiveRecord::Base

  def self.update_feeds
    all.each do |feed|
      FeedEntry.update_from_feed(feed.url)
    end
  end

end