My列用于模型税收: ID、收据、TAXID、基数、金额
假设我有数据库条目:
1,001,30美元,3美元
2,001,50美元,5美元
3,001,20美元,2美元
我想显示每一张收据的金额。其结果应是:
1,8美元
2,2美元
我的控制器
class TaxlinesController < ApplicationController
def index
@taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT)
end
end我的观点:
<% @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是在现有数据库的基础上构建的,列名大写。
我做错了什么?
发布于 2016-10-20 04:03:38
您的问题是,Taxline.group(:RECEIPT).sum(:AMOUNT)返回一个哈希对象,而不是像您所期望的那样返回一组Taxline实例。它们的键是分组值(接收),值是相应的和。类似于:
{ "01a8fdd7-8eb6-44d0-a686-8010b9e30206" => 145000.0, ... }当您执行@taxlines.each时,哈希将被强制放入数组中。
使用当前代码,您可以简单地将视图更改为:
<% @taxlines.each do |receipt, amount| %>
<td><%= receipt %></td>
<td><%= amount %></td>https://stackoverflow.com/questions/40144422
复制相似问题