Ruby on rails 循环以在模型中创建多个记录
我使用Nokogiri从网页中获取数据,到目前为止,我可以保存到模型中的一列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
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}创建一个常见的方法,但不要像以前对这两种方法所做的那样使用commonmatch
,因为这两种方法似乎都不起作用,它如何知道create命令中的home和away是什么?