我的模特是这样的:
Product belongs_to Category
Product belongs_to OrderItem
我想选择某一天销售的产品的总价值,按类别分组:
@items = OrderItem.joins(:product => [:category]).where('order_items.sale_date = ?', 1.day.ago.strftime('%Y-%m-%d')).group(:'categories.name').sum(:total_value)
查询工作正常,返回一个包含类别名称和总值的数组。
我在结果中需要一些额外的列,比如类别的ID。我怎么能这样做?
由于
答案 0 :(得分:1)
尝试以下方法获取一系列类别和相应的总和:
@items = OrderItem.joins(:product => [:category]).where('order_items.sale_date = ?',
1.day.ago.strftime('%Y-%m-%d')).group('categories.id').
sum(:total_value).map {|k, v| {category: Category.find(k), total_value: v}}
现在,在视图中,您可以使用以下内容:
<% @items.each do |item| %>
<p><%= item[:category].name %> - <%= item[:total_value] %></p>
<% end; %>