订购哈希/数组

时间:2016-05-06 09:49:34

标签: ruby-on-rails

我想根据销售的单位(:数量)订购产品清单(:产品):

<% Sale.where(brand: current_user.brand).group(:product).by_day.sum(:quantity).order(:quantity => :desc).limit(10).each do |p, c| %>
 <tr>
  <td><strong><%= p %></strong></td>
  <td><%= c %></td>
 </tr>
<% end %>

这会产生错误:

  

未定义的方法`order&#39; #Hash:....

订单方法是不是只考虑字段数量而不是整个哈希?

解决方案:

<% Sale.where(brand: current_user.brand).group(:product).by_day.sum(:quantity).sort_by{|product,quantity|  -quantity}.each do |product,quantity| %>

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

嘿,您可以使用Ruby sort_by-符号用于desc的订单:

Sale.where(brand: current_user.brand).group(:product).by_day.sum(:quantity).sort_by{|product,quantity|  -quantity}