1

ビューに配置したいスクレイプがあります。私のレーキ ファイルは次のようになります。

    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

コントローラー内部

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 に答える