2013-10-04 12 views
14

Mã của tôi trong bộ điều khiển chỉ mục.phương thức chưa xác định `paginate 'cho # <Array: 0x0000000764d1b8>

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)  

Tôi đang sử dụng đá quý will_paginate để phân trang. Tôi đã sử dụng nó trước mà không có bất kỳ lỗi nào nhưng khi tôi thay đổi mã từ Order.all.paginate() đến Order.select{}.paginate() lỗi đang đến.

Các lỗi tôi nhận được là

không xác định phương pháp 'paginate'

tôi cần phải đánh số trang những giá trị đó cho thấy chúng trong một bảng. Nếu tôi không thể phân loại chúng, có cách giải quyết nào không?

Trả lời

48

Bạn cần phải bao gồm phương thức will_paginate cho loại dữ liệu Array.

Để làm như vậy, bao gồm các dòng

require 'will_paginate/array' 

ở phía trên cùng của điều khiển của bạn, hoặc trong ApplicationController nếu bạn cần pagination trong tất cả các bộ điều khiển của bạn.

+0

Điều khó khăn là nếu bạn yêu cầu nó ở nơi khác trong bộ điều khiển khác và điều này được gọi trước bộ điều khiển mà không yêu cầu thì không có lỗi nào được ném. Vì vậy, đừng quên thêm nó ở khắp mọi nơi mảng được phân trang hoặc bất cứ nơi nào trên ví dụ: ApplicationController. – dduft

-1

Xóa .all đã làm việc cho tôi.

Các vấn đề liên quan