Ruby on rails Rails 5总和和组

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

模型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)
  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>