此问题与this之前提出的问题有关。
模型税号的我的数据库列:ID,RECEIPT,TAXID,BASE,AMOUNT 有条目: 1,1,001,30 $,3 $
2,1,001,50 $,5 $
3,2,001,20 $,2 $
然后是第二个包含列的表:TICKETID,TICKETNUMBER
我的控制器
class TaxlinesController < ApplicationController
def index
@taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT)
end
end
我的观点
<% @taxlines.each do |receipt, amount| %>
<td><%= receipt %></td>
<td><%= amount %></td>
<% end %>
这非常适合显示每行的票数以及相应的总金额。
问题1 。什么是在BASE的总和中显示的正确方法?我试过.sum(:AMOUNT, :BASE) and .sum(:AMOUNT).sum(:BASE)
,但它们都不起作用。
问题2 。如果现在我在视图中调用<%= taxline.TAXID %>
我收到错误。
为了解决这个问题,我尝试添加视图<% @taxlines.each do |receipt, amount, taxid| %> and <td><%= taxid %></td>. And in controller @taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT).select(:TAXID)
。但它显示了一个空白栏目。
问题3 。我想从TICKETS表中显示TICKETNAME值。我已经在Ticketline Model belongs_to :ticket
中设置了。我假设在解决问题1后我可以做ticketline.ticket.TICKETNAME.Right?
答案 0 :(得分:0)
问题1:
试试这个
@taxlines = Taxline.group(:RECEIPT).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE")
问题2:
要访问TAXID
,您需要在组列中添加此内容。
@taxlines = Taxline.group(:RECEIPT, :TAXID).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE, TAXID")
问题3:
要访问其他表变量,需要将join语句添加到查询中,然后进行分组。
@taxlines = Taxline.joins(:ticket).group(:RECEIPT, :TAXID).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE, TAXID, TICKETNAME")
在视图方面,请尝试以下方法。
<% @taxlines.each do |taxline| %>
<td><%= taxline.AMOUNT %></td>
<td><%= taxline.BASE %></td>
<td><%= taxline.TAXID %></td>
<td><%= taxline.TICKETNAME %></td>
<% end %>
P.S:没试过这个。