[英]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.