Rails:使用Feedjira从特定日期获取Feed条目

时间:2018-03-24 20:22:50

标签: ruby-on-rails postgresql rss atom-feed feedjira

它是怎么回事?

我已将 Recent News 部分添加到用户信息中心的顶部,在其中通过Feedjira获取新闻报道,将NewsEntry保存到数据库(postgres)然后选择三个随机NewsEntries以显示在Dashboard#index视图中。

我还创建了一个佣金任务NewsEntry.update_from_feed(feed_url)来更新表格,新的NewsEntries计划每24小时运行一次。

我的问题,因为它是 Recent News 部分,我想获取今天发布的NewsEntries(或昨天;这也可能是时间)。最后,我将添加rake任务以删除旧文章并使用较新的文章更新Feed。现在我在尝试获取特定日期的条目时遇到错误:

NoMethodError: undefined method `where' for #<Array:0x00007fcab2910d00>

NewsEntry

class NewsEntry < ApplicationRecord
  def self.update_from_feed(feed_url)
    feed = Feedjira::Feed.fetch_and_parse(feed_url)
    add_entries(feed.entries)
  end

  private

  def self.add_entries(entries)
    today = Date.today
    entries.where("published_at = ?", today) do |entry|
      unless exists? :guid => entry.id
        create!(
          :title         => entry.title,
          :url          => entry.url,
          :published_at => entry.published,
          :guid         => entry.id
        )
      end
    end
  end
end

提前感谢您的帮助!

0 个答案:

没有答案