Rails group_by beginning_of_week获得ISO周而不是标准周

时间:2015-08-24 17:50:10

标签: ruby-on-rails ruby-on-rails-4

我正在使用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方法切换它,还是有另一种方法必须这样做?

0 个答案:

没有答案