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