首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将哈希拆分成多个无序列表

将哈希拆分成多个无序列表
EN

Stack Overflow用户
提问于 2012-05-07 23:46:13
回答 1查看 429关注 0票数 1

我一直在寻找以更干净的方式完成以下任务,但没有成功。

我有一个从我的控制器调用的字符串散列:

代码语言:javascript
复制
@categories = Category.find

我尝试在三个单独的无序列表(ul)中显示结果。

下面是我试图实现的一个丑陋的版本:

代码语言:javascript
复制
<div class="span-7">
    <ul>
    <% @categories.first(4).each do |category| %>

        <li><%= category.name %></li>

    <% end %>
    </ul>       
</div>

<div class="span-7">
    <ul>
    <% @categories[5..8].each do |category| %>

        <li><%= category.name %></li>

    <% end %>
    </ul>       
</div>

<div class="span-8 last">
    <ul>
    <% @categories[9..12].each do |category| %>

        <li><%= category.name %></li>

    <% end %>
    </ul>       
</div>

(注意:我使用的是BlueprintCSS,因此超出了"span-x")

我认为有一种更简洁的方法可以使用分组(http://rails.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Grouping.html)来实现这一点,但我想不出如何将所有这些结合在一起。

如果有人能给我指出正确的方向,我将不胜感激。谢谢。

(我使用的是Rails 3.0.11)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-07 23:57:08

你在正确的轨道上。这应该可以做你想要的事情。

代码语言:javascript
复制
<% category_count = 0 %>
<% @categories.in_groups_of(4) do |group| %>
  <% category_count += group.size %>
  <div class="<%= category_count == @categories.size ? "span-8 last" : "span-7" %>">
    <ul>
    <% group.each do |category| %>
      <% if category %>
      <li><%= category.name %></li>
      <% end %>
    <% end %>
    </ul>       
  </div>
<% end %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10485044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档