2013-10-04 6 views
14

이 코드는 인덱스 컨트롤러에 있습니다.# <Array : 0x0000000764d1b8>에 대한 정의되지 않은 메소드`paginate '

order_customs = Order.select{|order| order.performer.white_label_id==1} 
@orders_customs_display=order_customs.paginate(:page => params[:page], :per_page => 5)  
@orders_customs_refunded=order_customs.select{|order| order.refunded==true}.paginate(:page => params[:page], :per_page => 5) 
order_white_label=Order.select{|order| order.performer.white_label_id!=1} 
@orders_white_label_display=order_white_label.paginate(:page => params[:page], :per_page => 5) 
@orders_white_label_refunded=order_white_label.select{|order| order.refunded==true}.paginate(:page => params[:page], :per_page => 5)  

저는 페이지 매기기에 will_paginate gem을 사용하고 있습니다. 이전에 오류없이 사용했지만 Order.all.paginate()에서 Order.select{}.paginate()으로 코드를 변경하면 오류가 발생합니다.

내가 점점 오전 오류가

정의되지 않은 메서드`PAGINATE '나는 테이블에 그들을 표시하기위한 해당 값 페이지를 매기는 필요

입니다. 내가 페이지를 매길 수 없다면 해결 방법이 있습니까?

답변

48

Array 데이터 형식에 will_paginate 메서드를 포함해야합니다. 이렇게하려면

는 컨트롤러의 상단 라인

require 'will_paginate/array' 

을 포함, 또는 ApplicationController에 당신은 모든 컨트롤러에 페이지 매김이 필요합니다.

+0

까다로운 점은 다른 컨트롤러의 다른 곳에서이 컨트롤러가 필요하면이 컨트롤러가 필요하지 않은 상태에서 호출되기 전에 오류가 발생하지 않는다는 것입니다. 배열에 페이지가 매겨진 곳이나 어디서든 추가하는 것을 잊지 마세요. ApplicationController. – dduft

-1

나를 위해 .all이 제거되었습니다.

관련 문제