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

Rails 5多和并联接
EN

Stack Overflow用户
提问于 2016-10-20 11:17:51
回答 1查看 1.1K关注 0票数 0

这个问题与this之前提出的问题有关。

My列: ID、收据、TAXID、基数、包含条目的金额:1,001、30美元、3美元

2,001,50美元,5美元

3,001,20美元,2美元

然后是列的第二个表: TICKETID,TICKETNUMBER

我的控制器

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

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

end

我的观点

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

        <td><%= receipt %></td>
        <td><%= amount %></td>
 <% end %>

这是很好的工作,以显示每一行与相应总额的票。

问题1.什么是正确的方式也显示在看的基础和?我试过.sum(:AMOUNT, :BASE) and .sum(:AMOUNT).sum(:BASE),但它们都不起作用。

问题2.如果现在我调用view,例如<%= taxline.TAXID %>,我会得到一个错误。为了解决这个问题,我尝试添加视图<% @taxlines.each do |receipt, amount, taxid| %> and <td><%= taxid %></td>. And in controller @taxlines = Taxline.group(:RECEIPT).sum(:AMOUNT).select(:TAXID)。但它显示了一个空白的列。

问题3.我想从票表中显示TICKETNAME值,我已经在Ticketline Model belongs_to :ticket中设置了。我假设在解决了问题1之后,我就可以做ticketline.ticket.TICKETNAME.Right了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-20 11:29:57

问题1:

尝尝这个

代码语言:javascript
复制
@taxlines = Taxline.group(:RECEIPT).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE")

Question2:

要访问TAXID,需要将其添加到组列中。

代码语言:javascript
复制
@taxlines = Taxline.group(:RECEIPT, :TAXID).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE, TAXID")

问题3:

要访问其他表变量,需要将联接语句添加到查询中,然后对其进行分组。

代码语言:javascript
复制
@taxlines = Taxline.joins(:ticket).group(:RECEIPT, :TAXID).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE, TAXID, TICKETNAME")

在视图端,尝试下面的一个。

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

        <td><%= taxline.AMOUNT %></td>
        <td><%= taxline.BASE %></td>
        <td><%= taxline.TAXID %></td>
        <td><%= taxline.TICKETNAME %></td>

 <% end %>

没试过这个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40152933

复制
相关文章

相似问题

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