2014-09-03 2 views
0

내가 제안의 관점에서 부분 렌더링 해요 : _parent_offers_table에, 다음레일이 전무에 대한 정의되지 않은 방법을 제공합니다 NilClass

<%= render partial: 'parent_offers_table', locals: { :parent_offers => [offer.parent_offer] } %> 

과 :

<%= render partial: 'parent_offer', collection: parent_offers %> 

그러나을 _parent_offer에 그럴 수 없어 parent_offer 변수로 무엇이든 할 수 있습니다. NilClass :

<tr> 
    <td><%= parent_offer.created_at %></td> 
    <td><%= parent_offer.version %></td> 
    <td><%= parent_offer.client.try(:name) %></td> 
    <td> 
    ............ 

내가 잘못하고있는 중이 야 내가이 전무에 대한 정의되지 않은 방법을 얻을? 감사합니다. 대신

답변

1

:

<%= render partial: 'parent_offer', collection: parent_offers %> 

시도 :

<%= render partial: 'parent_offer', locals: {parent_offers: parent_offers} %> 

나 :

<%= render 'parent_offer', parent_offers: parent_offers %> 
+1

또한 partial에서 사용되는 변수 이름이 렌더링하려는 컬렉션의 'model_name'을 준수하는지 확인해야합니다. –

+0

@IS04 이러한 두 가지 솔루션을 사용하면 이제'parent_offers'가 필요하다면 정의되지 않은 로컬 변수 또는 메소드'parent_offer '가 –

+0

(고정)으로 변경됩니다.'collection' 만 변경하면됩니다. – IS04

1

컬렉션

<%= render partial: "parent_offer", collection: parent_offers, as: :parent_offer %> 
,

collection 부분 렌더링 기능이 정말 놀랍지 만 부분적으로 호출하는 object을 관리하는 것은 매우 어렵다는 점에서 큰 단점이 있다는 것을 발견했습니다.

당신이 당신의 자신의 개체 이름을 호출하는 경우, 로컬 변수 정의 use the as: argument에 가장 수 있습니다 :

이 부분에서 사용자 정의 로컬 변수 이름을 사용하는을의 을 지정 옵션으로 부분에 호출 :

<%= render partial: "product", collection: @products, as: :item %>

이 변경과 함께, 당신은 부분 내에서 항목을 지역 변수로 @products 모음의 인스턴스에 액세스 할 수 있습니다.

관련 문제