【发布时间】:2011-11-16 06:41:14
【问题描述】:
我有一个创建足球赛程的脚本。
每个俱乐部只能与其他俱乐部打一场比赛,可以是主场比赛,也可以是客场比赛。
这是我的实际代码,它不适用于 20 个俱乐部(它创建了 145 场比赛而不是 190 场比赛,并且俱乐部的比赛数量不同)
clubs_to_play = all_clubs = Club.all #problematic line
all_clubs.each do |club|
home = true
clubs_to_play.delete(club)
clubs_to_play.each do |club_to_play|
f = Fixture.new
if (home)
f.home = club
f.away = club_to_play
home = false
else
f.home = club_to_play
f.away = club
home = true
end
f.save
end
end
end
但如果我将第一行更改为:
clubs_to_play = Club.all
all_clubs = Club.all
脚本运行并生成 190 个匹配项。这是为什么呢?
【问题讨论】:
-
在我的答案末尾查看我的编辑以获得更清洁的解决方案。
标签: ruby datamapper