2013-03-18 21 views
0

我最近开始学习Rails,并试图构建一个简单的应用程序,它可以从网站中刮取足球装置并在我的index.html中显示数据。然后用户可以尝试预测灯具的得分。在Rails中显示从Nokogiri中抓取的数据?

我设法将数据刮成使用一个引入nokogiri文件fixtures.rb:

require 'nokogiri' 
require 'open-uri' 
doc = Nokogiri::HTML(open("http://www.bbc.co.uk/sport/0/football/21784836")) 
doc.css("tr.row2").each do |item| 
    puts item.at_css("td.left.first p").text 
end 

什么是添加到一个Ruby on Rails应用程序最简单的方法?我可以把它放入控制器吗?作为视图,我无法完全粘贴文本。

回答

3

将其添加到数组中,然后在控制器中使用它。

@football = [] 
doc.css("tr.row2").each do |item| 
    @football << item.at_css("td.left.first p").text 
end 

然后在您的视图中可以参考的内容:

<% if @football %> 
    <ul> 
    <% @football.each do |foot| %> 
     <li><%= foot %></li> 
    <% end %> 
    </ul> 
<% end %> 
+0

非常感谢理查德。我只是尝试了这一点,但我得到了错误{未定义的方法'每个'为零:NilClass}我认为这意味着只有1个@football? – 2013-03-18 21:57:09

+0

您是否将该代码放入与您的视图关联的操作中?如果'@ football'有一个值,我编辑回应只显示代码。 – 2013-03-18 22:36:06

+0

谢谢理查德。它现在有效。我最初将操作放在控制器的索引方法之外。它在里面工作。欣赏它。 – 2013-03-18 23:02:40

相关问题