【发布时间】:2016-12-06 04:07:41
【问题描述】:
我正在制作支出日记,因此在我看来需要一个交叉表。该应用程序有一个支出表。该表中的每条记录都是单个支出,其中包含(除其他外)“Value”(作为整数)、“Day”(作为日期)和“Category_ID”(作为整数和外键)。
我想要做的是显示一个表格,显示用户每个月在每个类别上花费了多少。
因此我需要做两件事:
- 按月份和类别对所有支出进行分组
- 在视图中显示
换句话说,我想从:
收件人:
我怎样才能做到这一点?一直在寻找,但没有找到合适的解决方案。
此外,我想显示的不是“Category_ID”而是类别的名称(来自类别连接表)。
更新: 到目前为止,我尝试了以下方法:
@expenditures = Expenditure.where(:user_id => current_user)
@grouped_exp = @expenditures.includes(:category).group("DATE_TRUNC('month', day)", :name).sum(:value)
现在给了我:
[[[2016-08-01 00:00:00 UTC, "housing | electricity"], -31.0], [[2016-09-01 00:00:00 UTC, "other | pharmacy & drugstore"], -9.5], [[2016-08-01 00:00:00 UTC, "financials | salary"], 2913.92], [[2016-10-01 00:00:00 UTC, "housing | internet"], -26.06], ... ]
所以我现在每个月都有每个类别的总和。但是,我不知道这是否是正确的方法,如果是,下一步将是什么。
【问题讨论】:
-
我在帖子中添加了更新。
标签: ruby-on-rails postgresql crosstab