繁体   English   中英

Rails 5分组,求和并在视图中显示

[英]Rails 5 group by, sum and show in view

我在Rails 5和USign Postgres中有两个模型:

class Sale < ApplicationRecord
attribute :total (among others)
   belongs_to :categorys
end  

class Category < ApplicationRecord
  attritubte :name (among others)
  has_many :sales
end

那么我如何才能按类别获得销售分组并汇总每个类别的销售总额? 以及如何在我的视图中显示它(在一个实例变量中)。 例如,我想在我的视图中显示以下内容:

CategoryOne:总计$ 3000(也许结果是哈希值,但如何在视图中显示呢?

二类:总计$ 4000

第三类:总计$ 2200

等等....

哪个是正确的方法查询(活动记录)? 以及如何在视图中显示结果? 谢谢

你可以计算组合total通过使用ActiveRecord的类别的销售额第#sum

category = Category.last
category.sales.sum(:total)

要在您的视图中呈现销售总额,您可以执行以下操作:

在类别模型中:

# app/models/category.rb
class Category < ApplicationRecord
  def sales_total
    sales.sum(:total)
  end
end

在您相关的控制器操作中:

# app/controllers/categories_controller.rb
@categories = Category.includes(:sales)

并在相应的视图中:

<% @categories.each do |c| %>
  <%= "Category #{c.name}: Total $#{c.sales_total} %>
<% end %>

希望这可以帮助!

def sales_total_on(date)
  sales.where(date: date).sum(:total)
end

您可以通过请求参数将日期从表单传递到控制器。 您可以使用选择或日期选择器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM