Ruby on rails Rails 5总和和组
模型Taxline的My DB列: ID、收据、计税单、基数、金额 假设我有db条目: 1,1001,30美元,3$ 2,1001,50美元,5$ 3,2001,20元,2$ 我想显示每张收据的金额总和。结果应该是: 1,8$ 2,2$ 我的控制器Ruby on rails Rails 5总和和组,ruby-on-rails,Ruby On Rails,模型Taxline的My DB列: ID、收据、计税单、基数、金额 假设我有db条目: 1,1001,30美元,3$ 2,1001,50美元,5$ 3,2001,20元,2$ 我想显示每张收据的金额总和。结果应该是: 1,8$ 2,2$ 我的控制器 class TaxlinesController < ApplicationController def index @taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT) e
class TaxlinesController < ApplicationController
def index
@taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT)
end
end
class TaxlinesController
我的看法是:
<% @taxlines.each do |taxline| %>
<td><%= taxline.RECEIPT %></td>
<td><%= taxline.AMOUNT %></td>
但是我得到了错误未定义的方法'receive',用于[“01a8fdd7-8eb6-44d0-a686-8010b9e30206”,145000.0]:数组
145000.0和01a8fdd7-8eb6-44d0-a686-8010b9e30206指的是以db表示的真实值,而不是上述示例。但它给出了一个想法
应用程序构建在现有数据库上,列名大写
我做错了什么?您的问题是
Taxline.group(:RECEIPT).sum(:AMOUNT)
返回一个散列对象,而不是一组您期望的Taxline实例。这些键是分组值(收据),这些值是相应的总和。比如:
{ "01a8fdd7-8eb6-44d0-a686-8010b9e30206" => 145000.0, ... }
当您执行@taxlines时,每个
哈希都被强制到一个数组中
使用当前代码,您只需将视图更改为:
<% @taxlines.each do |receipt, amount| %>
<td><%= receipt %></td>
<td><%= amount %></td>
您的问题是
Taxline.group(:RECEIPT).sum(:AMOUNT)
返回一个散列对象,而不是您期望的一组Taxline实例。这些键是分组值(收据),这些值是相应的总和。比如:
{ "01a8fdd7-8eb6-44d0-a686-8010b9e30206" => 145000.0, ... }
当您执行@taxlines时,每个
哈希都被强制到一个数组中
使用当前代码,您只需将视图更改为:
<% @taxlines.each do |receipt, amount| %>
<td><%= receipt %></td>
<td><%= amount %></td>