1

我有一个要放到视图上的刮擦,我的 rake 文件看起来像这样。

    desc "Fetch teams table"
    task :fetch_teams => :environment do
      require 'nokogiri'
      require 'open-uri'

      url = "http://www.nba.com/standings/team_record_comparison/conferenceNew_Std_Cnf.html"
      doc = Nokogiri::HTML(open(url))
      puts doc.css("tr.title:has(td:contains('Western')) ~tr").map {|a| a.search('td')[0].text}
    end

我也在我的控制器中定义了这个

      def show
      @teams = []
        doc.css("tr.title:has").each do |team|
      @teams << item.at_css("td:contains('Western') ~tr").text
    end

  <% if @teams %>
    <ul>
      <% @teams.each do |team| %>
        <li><%= team %></li>
      <% end %>
    </ul>
  <% end %>

不会工作?

为什么?

谢谢

4

2 回答 2

0

如果您doc在 rake 任务中构建您的 Nokigiri,那么您无法doc在控制器内部访问它。你的控制器动作到底doc指向什么?

于 2013-10-16T15:07:39.043 回答
0

控制器内部

require 'nokogiri'
require 'open-uri'
@teams = []
url = "http://www.nba.com/standings/team_record_comparison/conferenceNew_Std_Cnf.html"
doc = Nokogiri::HTML(open(url))
doc.css("tr.title:has(td:contains('Western')) ~tr").each do |team|
  p team.search('td')[0].text
  @teams << team.search('td')[0].text
于 2013-10-16T15:19:15.210 回答