Rails group_by 查询中的额外列
Rails extra columns in group_by query
我的模型是这样的:
Product belongs_to Category
Product belongs_to OrderItem
我想select某一天销售的产品总价值,按类别分组像这样:
@items = OrderItem.joins(:product => [:category]).where('order_items.sale_date = ?', 1.day.ago.strftime('%Y-%m-%d')).group(:'categories.name').sum(:total_value)
查询工作正常,返回一个包含类别名称和总值的数组。
我需要在结果中添加一些额外的列,例如类别的 ID。我该怎么做?
谢谢
尝试以下方法获取类别数组和相应的总和:
@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; %>
我的模型是这样的:
Product belongs_to Category
Product belongs_to OrderItem
我想select某一天销售的产品总价值,按类别分组像这样:
@items = OrderItem.joins(:product => [:category]).where('order_items.sale_date = ?', 1.day.ago.strftime('%Y-%m-%d')).group(:'categories.name').sum(:total_value)
查询工作正常,返回一个包含类别名称和总值的数组。
我需要在结果中添加一些额外的列,例如类别的 ID。我该怎么做?
谢谢
尝试以下方法获取类别数组和相应的总和:
@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; %>