繁体   English   中英

RoR在两列中显示元素

[英]RoR show elements in two columns

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

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

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

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

会给你

["element 1", "element 2", "element 3"]
["element 4", "element 5"]

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

因为我只需要在rails中使用它,这对我有用:

>> a = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
>> a.in_groups_of( (a.size/2.0).ceil, false ) if a.size > 0
=> [[1, 2, 3], [4, 5]]

查看Array#in_groups_of

这将按照您喜欢的方块切割数组。

一种方法是使用jQuery。 有几个插件可以为您完成此任务。

随后,在你有两个块之后,开始用第一个组填充一个div,一旦你到达结束,在第二个div中启动第二个组。 然后使用css来定位和设置彼此相邻的两个div。

你想在哪里展示这些元素?

如果它在视图中,则不应修改模型; 您的模型应该独立于您的演示文稿。

如果要在网页上显示结果,则必须在视图中使用html和css。 即使在您的视图中,您也可能不需要将元素“拆分”为子数组。

例如,请参阅此页面 如果你查看源代码,列表总是“一个接一个”,而不是分成组。 CSS调整文本的定位方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM