我试图将玩家分配到一个俱乐部。 一个俱乐部有n个球员,一个球员属于一个俱乐部。 俱乐部只能有少于23名球员,并且不超过2名球员在同一位置上进行比赛。使用数据映射器的对象关联
clubs = Club.all #Club is a datamapper object. Returns 20 clubs
to_generate = 10000
while (to_generate > 0)
p = Player.new #Player is a datamapper object
p.position = position #position is a random integer defined elsewhere
clubs.each do |club|
count = 0
club.players.each do |club_player|
if (club_player.position == p.position)
count += 1
end
end
if (count < 2 && club.players.length < 22)
club.players << p
p.club = club
end
end
p.save
to_generate -= 1
末
在脚本的结尾,我希望所有的俱乐部有22名球员。为什么不是这样?
编辑:在脚本结束时,我只得到22名队员分配到最后一家具乐(20)和10000个的球员产生
每个俱乐部在脚本结尾处有多少球员? – Larsenal
我编辑了这个问题。剧本结束时,我只得到22名玩家分配到最后一个俱乐部(20人)和10000名玩家生成 – marcosdsanchez
我认为我已经为你解答了一个很好的答案。 – Larsenal