【发布时间】:2017-01-09 15:19:55
【问题描述】:
...或者,我只是不明白。
TL;DR - 我得到完全随机的结果,重复等。不知道为什么。
这就是问题所在 - 我正在尝试制作一个生成锦标赛括号的 Rails 应用程序。用户可以在生成括号时选择是否要随机分配团队列表,或者稍后自行分配团队。
如果我选择后一个选项并根据 ID 生成括号,一切都很好。 如果我选择随机化列表,则列表本身很好,但是稍后在将团队分配给特定比赛时(在循环中),结果完全无组织且出乎意料(至少对我而言)。
而不是
第 1 场比赛:第 1 队对第 2 队
第 2 场比赛:第 3 队对第 4 队
等(如在正常生成的列表中)
我得到一些完全随机的东西,经常重复,比如:
第 1 场比赛:第 1 队对第 1 队
第 2 场比赛:第 1 队对第 9 队
if @seed = 'random'
@team_list = @tournament.teams.order("RAND()")
else
@team_list = @tournament.teams.order(:id)
end
这是我分配团队的方式。搞砸一切的东西似乎是“偏移”部分,我不明白,为什么。
@match.team_a = @team_list.offset((2*match_number)-2).limit(1).first
@match.team_b = @team_list.offset((2*match_number)-1).limit(1).first
编辑:
根据要求提供@team_list 数据样本。那是随机的。
#<ActiveRecord::AssociationRelation
[#<Team id: 2, team_name: "test_team_a", reputation: 0, created_at: "2016-08-25 09:29:20", updated_at: "2016-08-26 11:08:21", team_leader_id: 2>,
#<Team id: 9, team_name: "test_team_b", reputation: 0, created_at: "2016-08-30 23:01:17", updated_at: "2016-08-30 23:01:17", team_leader_id: 2>,
#<Team id: 3, team_name: "test_team_c", reputation: 0, created_at: "2016-08-30 22:59:16", updated_at: "2016-08-30 22:59:16", team_leader_id: 2>,
#<Team id: 7, team_name: "test_team_d", reputation: 0, created_at: "2016-08-30 23:00:35", updated_at: "2016-08-30 23:00:35", team_leader_id: 2>,
#<Team id: 5, team_name: "test_team_e", reputation: 0, created_at: "2016-08-30 23:00:07", updated_at: "2016-08-30 23:00:07", team_leader_id: 2>,
#<Team id: 6, team_name: "test_team_f", reputation: 0, created_at: "2016-08-30 23:00:23", updated_at: "2016-08-30 23:00:23", team_leader_id: 2>,
#<Team id: 4, team_name: "test_team_g", reputation: 0, created_at: "2016-08-30 22:59:41", updated_at: "2016-08-30 22:59:41", team_leader_id: 2>,
#<Team id: 8, team_name: "test_team_h", reputation: 0, created_at: "2016-08-30 23:00:46", updated_at: "2016-08-30 23:00:46", team_leader_id: 2>]>
【问题讨论】:
-
您能在@team_list 中添加一个数据样本吗?
-
现在添加:)
标签: ruby-on-rails random generator offset