2011-01-17 4 views
9

컬렉션을 렌더링 할 때 부분적으로 정말 이상한 문제가 발생했습니다. 다른 방법을 시도해 보았습니다. 그러나 경우부분을 렌더링하려고 할 때 로컬 변수는 항상 nil입니다.

<%= render 'item', :collection => @foo.items %> 
<%= render 'item', :collection => @foo.items, :as => :item %> 

<% @foo.items.each do |item| %> 
    <%= render 'item', :locals => {:item => item} %> 
    <%= render 'item', :object => item %> 
<% end %> 

를 부분 바로 닐 출력 이러한 각각의 시나리오에서 :

<pre><%= item.inspect -%></pre> 

그리고 여기에이를 이용할 수 있도록 시도이다 : 여기

은 (디버깅) 내 일부 코드 내 각 루프 내에서 item.inspect이 튀어 나와 예상대로 개체 세부 정보가 표시됩니다.

내가 생각할 수있는 유일한 문제는 items 연관이 다른 클래스에 매핑 된 짧은 이름이므로 레일스 3 자동 작업이 해당 클래스 이름과 일치하도록 변수에 할당 할 수 있다고 생각했습니다. 그러나 내가 시도하고 출력하면 '정의되지 않은 지역 변수 오류'가 발생합니다.

나는 어리석은 것을 간과하고 싶습니다.

답변

10

이미 시도해 보셨습니까? -

<% @foo.items.each do |item| %> 
    <%= render 'item', :item => item %> 
<% end %> 

업데이트

여기 컬렉션에 대한 추측이다 :

<%= render :partial => 'item', :collection => @foo.items, :as => :item %> 
+0

나는 내가 노력 모든 변화들했지만, 그것을 작동하는 것 같다 나는이 알아 맞추기 꽤 확신했다. 아직도 이상하게 (그리고 짜증나는) 컬렉션을 얻을 수 없다. – DEfusion

+0

글쎄, 좋은 일이 있다면. 나는 아직도 컬렉션에 관해서 시도할만한 것을 추가했다. – polarblau

+6

와우 : partial => 'item'부분을 포함하지 않고 새로운 레일스 3 단축형을 사용하면 작동하지 않지만 부분적 이름 만 사용하면 효과적입니다. – DEfusion

관련 문제