首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 5和群

Rails 5和群
EN

Stack Overflow用户
提问于 2016-10-20 02:23:36
回答 1查看 1.2K关注 0票数 1

My列用于模型税收: ID、收据、TAXID、基数、金额

假设我有数据库条目:

1,001,30美元,3美元

2,001,50美元,5美元

3,001,20美元,2美元

我想显示每一张收据的金额。其结果应是:

1,8美元

2,2美元

我的控制器

代码语言:javascript
复制
    class TaxlinesController < ApplicationController

  def index
    @taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT)
  end

end

我的观点:

代码语言:javascript
复制
 <% @taxlines.each do |taxline| %>


        <td><%= taxline.RECEIPT %></td>
        <td><%= taxline.AMOUNT %></td>

但是,对于"01a8fdd7-8eb6-44d0-a686-8010b9e30206",145000.0:数组,我得到了未定义的方法‘`RECEIPT’。

145000.0和01a8fdd7-8eb6-44d0-a686-8010b9e30206引用db中的实际值,而不是上面的示例。但它给出了这个想法。

App是在现有数据库的基础上构建的,列名大写。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 04:03:38

您的问题是,Taxline.group(:RECEIPT).sum(:AMOUNT)返回一个哈希对象,而不是像您所期望的那样返回一组Taxline实例。它们的键是分组值(接收),值是相应的和。类似于:

代码语言:javascript
复制
{ "01a8fdd7-8eb6-44d0-a686-8010b9e30206" => 145000.0, ... }

当您执行@taxlines.each时,哈希将被强制放入数组中。

使用当前代码,您可以简单地将视图更改为:

代码语言:javascript
复制
<% @taxlines.each do |receipt, amount| %>
    <td><%= receipt %></td>
    <td><%= amount %></td>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40144422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档