2013-03-12 3 views
0

Я использую Nokogiri, чтобы захватить данные с веб-страницы, до сих пор я могу сохранить в один столбец в моделиLoop, чтобы создать несколько записей в модели

def update_fixtures #rake task method 
Fixture.destroy_all 
get_fixtures.each {|match| Fixture.create(home_team: match)} 
end 

def get_fixtures # Get me all Home Teams 
doc = Nokogiri::HTML(open(FIXTURE_URL)) 
home_team = doc.css(".team-home.teams").map {|h| h.text.strip } 
end 

Что мне интересно, это наиболее эффективный способ сэкономить 2, 3 или 4 columms одновременно

так как пример я еще один столбец под названием AWAY_TEAM, и я бы град, что данные таким же образом, как хозяева

away_team = doc.css(".team-away.teams").map {|a| a.text.strip } 

является целесообразным ставить s в методе get_fixtures? а затем добавить к update_fixtures с чем-то вроде

def update_fixtures #rake task method 
Fixture.destroy_all 
get_fixtures.each {|match| Fixture.create(home_team: match, away_team: match)} 
end 

После попытки это те же данные, будет размещена на дому и на выезде columns.Which после прочтения назад я могу понять, почему (я думаю, что его, потому что матч только захватывая HOME_TEAM данные?). Как я могу передать атрибуты команды гостей вместе с домашней командой?

Это все очень новое, так что любая помощь при условии, ценится

+0

почему же получает данные размещены для обоих? Внутри метода get_fixtures переменные 'home_team' и' away_team' имеют разные назначения, поэтому данные должны быть разными. –

+0

Im не уверен, так я иду об этом в правильном направлении? Я получаю те же данные, что и для домашней команды и команды гостей, поэтому (H) Man Utd (A) Manutd. – Richlewis

ответ

1

Это не правильный подход, поскольку переменные home_team и away_team оба используют один и тот же общий match и, таким образом, вы получаете те же данные для обоих.

Выполните следующие действия:

UPDATE:

Ваша модель:

attr_accessible :home_team, :away_team 

def update_fixtures #rake task method 
    Fixture.destroy_all 
    doc = Nokogiri::HTML(open(FIXTURE_URL)) 

    home_team = doc.css(".team-home.teams").map {|h| h.text.strip } 
    away_team = doc.css(".team-away.teams").map {|a| a.text.strip } 

    Fixture.create(home_team: home_team, away_team: away_team) 
end 
+0

да имеет смысл, разделить его и сделать каждый из них отдельным методом, я думаю, я пытался быть слишком умным, держа его просто, спасибо большое – Richlewis

+0

hmm только гости теперь могут теперь обновлять – Richlewis

+0

Любые идеи, как это было бы написано в один столбец – Richlewis

Смежные вопросы