本当に次の状況を回避しようとしています。私はスクリーンスクレイプを介してサッカーの結果を取得し、それらをモデル (結果) に保存しています。これまでのところ....モデル間にいくつかの関連付けが設定されており、関連付けられたモデルからすべての ID を取得して結果に保存したいと考えています。モデル..私のモデルはそのように設定されています
class Fixture < ActiveRecord::Base
attr_accessible :away_team, :fixture_date, :home_team, :kickoff_time, :prediction_id
end
class Prediction < ActiveRecord::Base
attr_accessible :away_score, :away_team, :fixture_id, :home_score, :home_team, :score
has_one :fixture
has_one :result
end
class Result < ActiveRecord::Base
attr_accessible :away_score, :away_team, :fixture_date, :home_score, :home_team, :prediction_id
end
私のスクリーンスクレイプはそのように見えます
def get_results
doc = Nokogiri::HTML(open(RESULTS_URL))
days = doc.css('.table-header').each do |h2_tag|
date = Date.parse(h2_tag.text.strip).to_date
matches = h2_tag.xpath('following-sibling::*[1]').css('tr.report')
matches.each do |match|
home_team = match.css('.team-home').text.strip
away_team = match.css('.team-away').text.strip
score = match.css('.score').text.strip
home_score, away_score = score.split("-").map(&:to_i)
Result.create!(home_team: home_team, away_team: away_team, score: score, fixture_date: date, home_score: home_score, away_score: away_score)
end
end
end
したがって、結果を作成する前に、正しい結果 (サッカーの試合) に対応するフィクスチャ モデルから予測 ID を取得し、他のすべての属性を保存すると同時にそれらを保存する必要があります。 ..
ありがとう
編集
わかりましたので、ここまで来ました
fixture = Fixture.where(fixture_date: date, home_team: home_team, away_team: away_team).first
prediction_array = Prediction.where(fixture_id: fixture.id)
次に値を引き出す必要があります..