RoR在两列中显示元素

Pat*_*ity 6 arrays split ruby-on-rails

如何将模型的元素分成两个大小相同的部分,以便我可以将它们显示在两列中?

i have this:

element 1
element 2
element 3
element 4
element 5


and i want this:

element 1    element 4
element 2    element 5
element 3
Run Code Online (Sandbox Code Playgroud)

split() 不幸的是删除了中间元素.

mrD*_*mrD 8

Array#in_groups_of是核心扩展,仅在Rails中可用.它使用的是each_slice方法.

你可以像这样使用它:

a = ["element 1", "element 2", "element 3", "element 4", "element 5"]
a.each_slice((a.size/2.0).ceil) { |slice| puts slice } if a.size > 0
Run Code Online (Sandbox Code Playgroud)

会给你

["element 1", "element 2", "element 3"]
["element 4", "element 5"]
Run Code Online (Sandbox Code Playgroud)

请注意,您必须检查a.size是否大于0,否则由于切片大小无效,您将收到ArgumentError异常.