2016-05-06 13 views
0

(:数量):注文ハッシュ/配列

<% 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 %> 

これはエラーを生成します。

undefined method `order' for #Hash:....

べきではありませんorderメソッドはハッシュ全体ではなくフィールド量を考慮します。

ソリューション:事前に

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

多くの感謝!

答えて

1

ねえ、あなたはサインは順序がdescを使用するために使用されsort_by-としてのRubyを使用することができます。情報のため

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

感謝を。しかし、これはループではありません。 – CottonEyeJoe

+0

修正済み:<%Sale.where(ブランド:current_user.brand).group(:product).by_day.sum(:quantity).sort_by {| product、quantity | -quantity} .each do |製品、数量| %> – CottonEyeJoe

関連する問題