开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

029 按月分组 group_by Month

简介:
+关注继续查看

group_by Month

Learn how to use the very useful group_by method to group an array by anything you want! In this episode I group an array of tasks by month then sort it properly.
 
学习如何使用group_by方法将一个数组按照你的意愿分组。这一节我会将任务按照月来分组然后适当的进行排列。
---
先来了解一下group_by方法:
 
>>script/console
>>a=(1..20).to_a
>>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
>>a.group_by {|num| num/5}
=>{0=>[1,2,3,4],1=>[5,6,7,8],2=>[10,11,12,13,14],3=>[15,16,17,18,19],4=>[20]}
--回来原先那个例子中:
 
def index
    @task_months=@tasks.group_by {|t| t.due_at.beginning_of_month}
end
 
在view中循环这个变量
 
<% @task_months.each do |month,tasks|%>
    <h2><%= month.strftime('%B')%></h2>
    <% for task in tasks%>
      <%=task.name%>
    due on<%= task.due_at.to_date.to_s(:long)%>
  <%end%>
<%end%>
 
修改之后显示就是这样的了:
 
看到,虽然这是按着月这样排了,但是发现April,June,May不是按顺序的。
所以:
<% @task_months.keys.each do |month|%>
    <h2><%= month.strftime('%B')%></h2>
    <% for task in @task_months[month]%>
      <%=task.name%>
    due on<%= task.due_at.to_date.to_s(:long)%>
  <%end%>
<%end%>
 
先对hash的key循环,然后内部对value循环。
 




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/131943,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
GROUP BY 一个以上的列
GROUP BY 一个以上的列
0 0
十、GROUP BY 和 HAVING 的使用
十、GROUP BY 和 HAVING 的使用
0 0
函数的理解 group by order by理解
函数的分类 单行函数 对每一行记录都有作用 对每一行记录都能返回一个结果 例子lower(ename) 对每一个记录的ename字段都返回一个结果 多行函数 对一组记录返回一个结果 聚合函数就是多行函数 例子l...
691 0
group by的使用
1、概述 2、原始表 3、简单Group By 4、Group By 和 Order By 5、Group By中Select指定的字段限制 6、Group By All 7、Group By与聚合函数 8、Having与Where的区别 9、Compute 和 Compute By 1、概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
628 0
Lina Group
var query = from ll in proListRequestList group ll by new {ll.pro_id} into g select new ProListRequest { pro_id = g.
446 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
对 2000 多亿条数据做一次 group by 需要多久?
立即下载
对2000多亿条数据做一次Group By 需要多久
立即下载
低代码开发师(初级)实战教程
立即下载