需要在视图中相应地排列一些数字

时间:2015-01-31 05:12:06

标签: ruby-on-rails ruby

我假设有树结构。我知道一些条件。我想举个例子:

469 & 470 results 468
472 & 473 results 471
476 & 477 results 475
479 & 480 results 478

这是第1轮假设。在接下来的几轮中:

Round 2:
  468 & 471 results 467
  475 & 478 results 474
Round 3:
  467 & 474 results 466

我需要如图所示排列它们。此外,我还有一件事要安排它们,我已经在css中制作了一些ID,以便它们进入适当的位置。所以从最右边开始它应该得到15然后留给它14,13。我不能发布图像所以我在这里建立一个结构:

469
    468
470
        467
472
    471
473
             466
476
    475
477
        474
479
    478
480

现在每个人得到的数字是:

1
   9
2
       13
3
   10
4
           15
5
   11
6
       14
7
   12
8

现在我的问题是我从数据库得到这些东西,这两个数字导致第三。我需要编写一段代码来自动完成这种安排。我为每个数字得到了一系列哈希值。表示469的散列,其他为470,依此类推。在rails术语中我们称之为ActiveRecord :: Relation。任何人都可以帮助我。

更新更新: 我一直都知道469& 470将结果468,依此类推。还假设我在466那么它将具有它来自467&总之,它有前后两个数字。我想对它们运行一个循环并按上面的顺序排列它们,以便左侧的时间表和右侧的时间表匹配。这可以假设为任何运动的世界杯比赛,其中两个比赛导致下一场比赛,依此类推。最后我想在我看来做一棵树。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我所做的是做了一个自定义哈希。为此我运行了这样一个循环:

首先采用最后一个,即在上面的示例中它是466.所以我将其插入哈希:

{5 => {466}}

然后我知道466来自467&所以我把这两个插入了同样的内容:

{5 => {466}, 4=> {467, 474}}

然后,对于下一个,我在hash [4]上运行了一个循环,首先从467中取出两个调度并插入散列中,然后从散列中的474中插入两个调度。这是如何:

{5 => {466}, 4 => {467, 474}, 3 => {468, 471, 475, 478}}

等等。然后在视图中,我根据键循环哈希,并将它们排列在视图中。假设哈希是s。然后:

(4).downto(1).each do |i|
  s[i].each do |x|
   #code to display here
  end
end

希望如果他们需要做同样的事情,这也可以帮助其他人。