我正在使用group_by创建一个报告,以按周打破一个月的订单。使用rails begin_of_week方法可以很好地完成这项工作,但是使用标准而不是ISO周来分解一个月。
按周分组订单
orders = orders.group_by {|x| x.order_date.beginning_of_week(start_day = :monday)}
循环播放
<table style="width:100%">
<thead>
<tr>
<th>Item</th>
<th>price</th>
</tr>
</thead>
<tbody>
<% orders.each do |week, items| %>
<tr>
<th colspan="2">
Orders week of <%= week.strftime("%m-%d-%Y") %> - <%= (week + 4).strftime("%m-%d-%Y") %>
</th>
</tr>
<% items.each do |weekitem| %>
<tr>
<td><%= weekitem.item_number %></td>
<td><%= weekitem.price %></td>
</tr>
<% end %>
<% end %>
</tbody>
</table>
我以为我可以像下面一样链接cweek,但它会返回错误。
orders = orders.group_by {|x| x.order_date.beginning_of_week.cweek(start_day = :monday)}
考虑到我的例子,我将如何使用ISO周而不是标准?有没有办法使用begin_of_week方法切换它,还是有另一种方法必须这样做?