0

在过去的 6 个月里,我一直在使用 Ruby 和 Rails 进行编程,现在我已经很适应了。但是,在使用我的 Rails 应用程序之前,我从来不需要处理 RSS 提要。对于我当前的项目,我有一个显示页面,显示不同的市场指数及其开盘价、最高价、最低价和成交量值。现在,我想从 yahoo Finance 带来 RSS 提要,并希望在同一页面中显示它们。我想从这个链接http://finance.yahoo.com/rssindex获取 RSS 提要,然后我想在我的 Rails 应用程序的显示页面中显示它们。在寻找这个问题的解决方案时,我遇到了这个:Generating RSS feed in Rails 3

但是,我认为这是为一个应用程序生成 RSS 提要。我相信我的需求与此不同。我想获取 RSS 提要并在我的显示页面中显示它们。为了获取 RSS 提要,我发现了一个名为 feedzirra 的 ruby​​ gem,它看起来很棒。但是,我仍然对如何使用我的 Rails 应用程序实际显示新闻提要感到有些困惑?我的意思是,我需要为此创建任何模型、视图和控制器吗?我是否需要将新闻提要保存在我的数据库中以便在我的显示页面中显示它们?或者,有什么方法可以使用 feedzirra 获取并在我的显示页面中显示它们?我只是不确定如何从这个位置前进。解决此问题的最佳 Rails 方法是什么?

4

1 回答 1

1

瑞安·贝茨(Ryan Bates)有一个解决问题的方法: http ://railscasts.com/episodes/168-feed-parsing

你绝对应该有这个数据的模型。目标应该是让模型处理数据的获取和解析。

如果您对将信息保存到自己的数据库不感兴趣(如 railscast 剧集中所示),请注意,在每次页面加载时向 yahoo 发出请求会导致性能下降。

这是您可以添加到模型中的方法的简单示例。

def self.lookup_stock_titles(stock_name)
  titles = Array.new
  Feedzirra::Feed.fetch_and_parse("http://feeds.finance.yahoo.com/rss/2.0/headline?s=#{stock_name}&region=US&lang=en-US").entries.each do |entry|
     titles << entry.title
  end
  return titles
end

这将为您提供来自 rss 提要的一系列标题,您可以根据需要将它们集成到控制器或视图中。

<% ModelName.lookup_stock_titles("ABC").each do |title| %>
  <h2><%= title %></h2>
<% end %>

还要确保雅虎允许您以您想要的方式使用他们的数据,将其保存到数据库中,每小时的请求数,您需要给他们什么样的信用等等。

于 2013-03-17T20:09:31.350 回答