我有一个model
,其中包含以下属性:
user_id, week_id, project_id, hours
1 61 1 20
1 62 1 5
1 61 2 15
1 63 1 0
2 61 1 0
我的view
看起来像这样:
<tr>
61 | 62 | 63 (week_id)
35 | 5 | 0 (Sum of hours per week_id)
</tr>
all_hours = Model.group_by(&:user_id)
@all_hours.each do |user, hours| %>
<tr>
hours.each do | hour |
hour.my_hours
并给了我两行user 1
如何分组第二次&amp;把每周的小时数加起来_得到想要的结果?
为了更清楚(希望):
@hours= Model.all.group_by(&:user_id)
<% @hours.each do |user, hours| %>
<tr>
<% hours.each do |h|%>
<td><%= h.hours%></td>
<% end %>
</tr>
给每个用户一个长行,如: 0.0 20.0 0.0 .... 0.0 15.0 0.0 现在我要总结20和15 在这一行 0.0 35.0 0.0
答案 0 :(得分:0)
我会尝试使用rails 3:
Model.select(:week_id).
select(Model.arel_table[:hours].sum.as("sum_of_hours")).select(:user_id)
group(:week_id).group(:user_id)
此处使用的库是arel
,是rails 3,activerecord的一部分。
我认为这很有效。但我自己没试过。希望这会有所帮助。