スクリーンスクレイプを介してデータを取得し、モデルに保存する方法を学習しようとしています。これまでのところ、データを取得できます。私はそうするかのようにこれを言います:
puts home_team
私はすべてのホームチームを返します
get_match.rb #データの取得
require 'open-uri'
require 'nokogiri'
module MatchGrabber::GetMatch
FIXTURE_URL = "http://www.bbc.co.uk/sport/football/premier-league/fixtures"
def get_fixtures
doc = Nokogiri::HTML(open(FIXTURE_URL))
home_team = doc.css(".team-home.teams").text
end
end
次に、モデルを更新したい
match_fixtures.rb
module MatchFixtures
class MatchFixtures
include MatchGrabber::GetMatch
def perform
update_fixtures
end
private
def update_fixtures
Fixture.destroy_all
fixtures = get_fixtures
end
def update_db(matches)
matches.each do |match|
fixture = Fixture.new(
home_team: match.first
)
fixture.save
end
end
end
end
だから、次のステップは私が行き詰まっているところです。まず、home_team の結果を配列に入れる必要がありますか?
2 番目の部分は、update_db メソッドを介して一致を渡していますが、それは正しくありません。ここで何を渡すか、update_fixtures メソッドからの home_team の結果、またはメソッド自体ですか?
私が行うタスクを実行するには:
namespace :grab do
task :fixtures => :environment do
MatchFixtures::MatchFixtures.new.perform
end
end
しかし、何も救われませんが、それは当然のことです。
ここでの学習曲線は急であり、正しい方向へのプッシュに感謝します。