Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 循环以在模型中创建多个记录_Ruby On Rails_Ruby On Rails 3_Loops_Models - Fatal编程技术网

Ruby on rails 循环以在模型中创建多个记录

Ruby on rails 循环以在模型中创建多个记录,ruby-on-rails,ruby-on-rails-3,loops,models,Ruby On Rails,Ruby On Rails 3,Loops,Models,我使用Nokogiri从网页中获取数据,到目前为止,我可以保存到模型中的一列 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)) h

我使用Nokogiri从网页中获取数据,到目前为止,我可以保存到模型中的一列

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列数据的最有效方法是什么

因此,作为一个例子,我有另一个专栏叫做客场团队,我将以与主队相同的方式对数据进行分级

away_team = doc.css(".team-away.teams").map {|a| a.text.strip }
建议将其放在get_fixtures方法中吗?然后添加到更新_装置中,如下所示

def update_fixtures #rake task method
 Fixture.destroy_all
 get_fixtures.each {|match| Fixture.create(home_team: match, away_team: match )}
end
在尝试了这个之后,同样的数据会被发布到主客场栏中。回过头来看,我能明白为什么(我想这是因为比赛只是获取主队数据?)。我怎样才能把客队和主队的属性传递给对方


这都是非常新的,因此我们非常感谢您提供的任何帮助。这不是正确的方法,因为变量
主队
客队
都使用相同的公共
匹配
,因此您得到的数据都是相同的

请执行以下操作:

更新:

您的型号:

 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

为什么两者都发布相同的数据?在get_fixtures方法中,
home_team
away_team
变量具有不同的赋值,因此数据应该不同。我不确定,所以我的方法是否正确?我在主队和客队都得到了相同的数据,所以曼联(H)是有道理的,把它们分开,让每一个都成为一个单独的方法,我想我太聪明了,保持简单,非常感谢现在只有客场球队更新了关于为什么只写一个专栏的任何想法OK do create in one-go as:
Fixture.create(主场球队:主场,客场球队:客场)}
。为此,使用
home\u team=doc.css(“.team home.teams”).map{h | h.text.strip}
away\u team=doc.css(.team away.teams”).map{a | a.text.strip}创建一个常见的方法,但不要像以前对这两种方法所做的那样使用common
match
,因为这两种方法似乎都不起作用,它如何知道create命令中的home和away是什么?