Rails中的金字塔排名

时间:2014-08-11 09:51:46

标签: ruby-on-rails ruby

我尝试在db中创建所有用户的金字塔样式列表。 它应该看起来像这样:

   01
  02 03
04 05 06

我尝试使用in_groups_of播放arround,它将元素分组为x,但即使这样也无法正常工作,因为当我选择in_groups_of(2)并放置div时,它会给我一个包含两个用户的div 。但我想为每个用户和上述设置提供一个div。

我知道它一定是这样的:

n=1
items per line = n
and after eachline n=n+1

但我不知道如何在RoR中实现这一目标。

1 个答案:

答案 0 :(得分:1)

每次创建一个金字塔时,你可以shift数组越来越多:

arr = %w(01 02 03 04 05 06 07 08 09 10 11)
n = 1
until arr.empty?
  edge = arr.shift(n)
  edge.fill('--', edge.length...n)
  puts edge.join(' ').center(20)
  n += 1
end
#         01         
#       02 03        
#      04 05 06      
#    07 08 09 10     
#  11 -- -- -- --

请注意,在此方法中,arr在创建金字塔时被销毁,并且在迭代结束时它将是一个空数组。如果你想保留它,在开始之前你需要dup它。