2017-01-04 1 views
0

구매 주문서를 작성하기 위해 앱에 기능을 구현하고 있습니다. 나는 고전적인 테이블 인 purchase_orders와 purchase_order_lists를 가지고있다.레일은 중첩 된 값의 합계를 보여줍니다.

purchase_order에는 많은 purchase_order_lists 및 purchase_order_lists belongs_to purchase_order가 있습니다. 외래 키는 purchase_orders 테이블의 PURCHASE_ORDER 열에 있습니다. 데이터베이스 테이블 이름은 대문자입니다. 내 purchase_orders 컨트롤러에서

내가 가진 내 모델 purchase_oder_list.rb

def total 
     (self.UNITS * self.PRICEBUY) 
end 

에서

def show 
     @purchase_order = PurchaseOrder.find(params[:ID]) 
     @purchase_order_list = PurchaseOrderList.find(params[:ID]) 
    end 

내 관점에서 각 구매에 대한 올바른 값을 반환 purchase_orders/show

<td><%= purchase_order_list.total %></td> 

주문 목록 행.

그런 다음 전체를 보여 같은보기 :

@purchase_order_list.to_a.sum(&:total) 
방법 total의 합계를 표시해야합니다

하지만이 구매 주문 ID를 찾고 있습니다로 오류

Couldn't find PurchaseOrderList with 'ID'=POID-00001 

를 제기 구매 주문 목록 ID 중.

특정 구매 주문서에 대한 방법 total의 합계를 반환하도록 수정하는 방법은 무엇입니까?

+0

'@purchase_order_list = PurchaseOrderList.find (PARAMS [: ID를]) '여기서 의미 없음과 같다. 내가 정말로 당신의 질문을 이해한다면 그냥 컨트롤러에서 제거하십시오. –

+0

답변 해 주셔서 감사합니다. 나는 그 질문을 편집했다. 특정 구매 주문에 대해 purchase_order_list 메소드'total'의 합계를 계산할 수 있도록 컨트롤러에 추가했습니다. – Catmal

답변

1

하나의 구매 주문에 대해 많은 purchase_order_lists가 있지만 문제는 내가 find을 사용하고 있다는 것이 었습니다.

가 I 대신 where 사용 해결하려면

@purchase_order_list = PurchaseOrderList.where(PURCHASE_ORDER: params[:ID]) 
관련 문제