2016-09-03 2 views
0

저는 인보이스 애플리케이션을 구축 중이며 _form 부분에는 수량, 설명 및 단위 가격 등의 제품을 추가 할 수있는 인보이스가 있습니다. 사용자는 추가 행을 추가하여 항목 (제품)을 더 추가 할 수 있습니다. 그것은 다음 오류를 제공ActiveRecord_Associations_CollectionProxy에 대한 정의되지 않은 메소드

<tbody> 
    <tr class="products_tr"> 
     <td> <%= @invoice.products.quantity %> </td> 
     <td> <%= @invoice.products.description %> </td> 
     <td> <%= @invoice.products.unitprice %> </td> 
     <td class="row_total"><%= @invoice.products.quantity * @invoice.products.unitprice %></td> 
     <td> <%= @invoice.products.btw %> </td> 
    </tr> 
    </tbody> 

:

지금 나는이 같은 쇼보기에서 해당 정보를 표시 할 때

undefined method `quantity' for #<Product::ActiveRecord_Associations_CollectionProxy:0x007fbe92831500> 

이 컨트롤러에 코드입니다;

def show 
    @invoice.products.build 
    @invoice.build_customer 
    end 

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 도움을 많이 주시면 감사하겠습니다. 그리고 내가 잘못하고있는 것이 정확히 무엇인지에 대한 설명을위한 플러스 포인트. enter image description here

답변

1

귀하는 인보이스에 많은 제품이 포함될 수 있으므로이 제품 목록을 반복 할 때 루프가 필요하다고 말씀하셨습니다.

+0

그래, 나는 이것도 생각하고 있었는데 잘 작동하지만 그것은 또한 아무것도 포함하지 않는 여분의 행을 보여줍니다. 원래 게시물의 그림을 참조하십시오. – luissimo

+1

@luissimo 그래, 추가로'if product.persisted? '체크를 추가했다. 그러면 데이터베이스에 이미 저장된 제품 만 표시됩니다. –

0

@invoice.products는 귀하의 :

편집

는 마이클 Młoźniak 같은 @의 invoice.products을 통해 내가 루프가 작동하지만이 같은 전무를 포함하는 추가 행을 표시했다 경우 컬렉션 어디로 quantity 해당 컬렉션의 각 개체에 전화해야합니다.

관련 문제