2013-10-04 52 views
14

這是我在代碼中的索引控制器。未定義的方法`paginate'爲#<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)  

我正在使用will_paginate gem進行分頁。我之前使用它沒有任何錯誤,但當我將代碼從Order.all.paginate()更改爲Order.select{}.paginate()錯誤即將到來。

我得到的錯誤是

未定義的方法`PAGINATE」

我需要分頁的值在表中顯示它們。如果我無法對它們進行分頁,是否有解決方法?

回答

48

您需要爲數據類型Array包含will_paginate方法。

要做到這一點,包括你的控制器頂部行

require 'will_paginate/array' 

,或者在ApplicationController,如果你需要在所有的控制器的分頁。

+0

棘手的是,如果你在其他控制器的其他地方需要它,並且在控制器之前調用這個控件而不需要那麼就不會引發錯誤。所以,不要忘記在數組分頁或任何位置以上的地方添加它。 ApplicationController的。 – dduft

-1

刪除.all爲我工作。

相關問題