2016-10-20 5 views
0

이 질문은 this 이전 질문과 관련이 있습니다. 모델 Taxline에 대한레일 5 여러 합계와 합류

내 DB 열 : ID, 영수증, TAXID, BASE, 입력 항목 금액 : 1,1,001,30 $, 3 $

2,1,001,50 $, 5 $

3,2,001,20 $, 다음 2 $

그리고 열 번째 테이블 : TICKETID,

내 컨트롤러

class TaxlinesController < ApplicationController 

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

end 
01 TICKETNUMBER 23,516,

이 금액을 해당 각 행 티켓을 보여 위대한 작품을

<% @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 값을 표시하려고합니다. 티켓 행 모델 belongs_to :ticket에 이미 설정했습니다. 질문 1을 해결하면 ticketline.ticket.TICKETNAME을 할 수 있다고 가정합니다. 맞나요?

답변

0

질문 1 :

@taxlines = Taxline.group(:RECEIPT).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE") 

Question2을 시도해보십시오

당신이 그룹 열이를 추가 할 필요가 TAXID에 액세스 할 수 있습니다.

@taxlines = Taxline.group(:RECEIPT, :TAXID).select("SUM(AMOUNT) AS AMOUNT, SUM(BASE) AS BASE, TAXID") 

질문 3 :

다른 테이블 변수에 액세스하려면, 당신은 쿼리 문을 가입 추가해야 한 다음 그룹을해야한다.

@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 %> 

추신 : 이것을 사용하지 않았습니다.

+0

완벽하게 작동합니다. 감사! – Catmal

+0

그래서, pls 최대 내 대답을 투표하고 정답으로 표시 :-) – Jayaprakash

+0

다시 한번 감사드립니다! – Catmal