2012-04-09 2 views
0

보기가 올바르게 표시되지 않습니다.페이지가 부모와 자식을 표시하는 방법을 매김 하시겠습니까?

<% for store in @stores %> 
    <% store.name %> 
    <% @stores.products.each do |p| %> 
    <% p.name %> 
    <% end %> 
<% end %> 

def index 
@stores = Store.paginate(:page => params[:page], :per_page => 20) 
end 

을하지만 오류와 끝까지 : 나는 지금 내 코드로이이 같은에서이 작업을 반복

undefined method `products' 

내가 저장 한 후 모든 제품을 보여주기 위해 노력하고있어

Store1 
Product1 
Product2 

Store2 
Product1 
Product2 
Product3 
Product4 

나는이 어떻게 할 수있는

: 가능한 예를 들어 한 많은 페이지?

답변

2

store에 액세스 할 루프 내부에 store.products이 없어야합니까?

<% for store in @stores %> 
    <%= store.name %> 
    <% store.products.each do |p| %> 
    <%= p.name %> 
    <% end %> 
<% end %> 

그리고 =은 상기 출력 라인에 부가된다. 대신 <% @stores.products.each do |p| %><%=

+0

그런데 왜 이렇게하면 '정의되지 않은 로컬 변수 또는 메소드 스토어'라는 오류가 발생합니까? 어쩌면 그것 때문에 다른 컨트롤러에서'StoresController'? – LearningRoR

+0

@Railslearner 다른 컨트롤러의 경우,이 뷰를 렌더링하기 위해 현재 호출하고있는 메소드에서'@ stores'가 정의되지 않았습니다. –

+0

@Railslearner wait,'@ stores'를'stores'로 변경했다는 것을 의미합니까? 그러면 오류가 발생합니까? 위의 예는'store.products.each'이며, 복수의'stores.product.each'가 아닙니다. –

3

난 당신이 <% store.products.each do |p| %>을 의미 생각 :

또한

, 당신은 store.namep.name 라인 <%=을 가지고 의미하지 않는다?

<% for store in @stores %> 
    <%= store.name %> 
    <% store.products.each do |p| %> 
     <%= p.name %> 
    <% end %> 
<% end %> 
관련 문제