未定义的方法`paginate'用于#<array:0x0000000764d1b8> </array:0x0000000764d1b8>

时间:2013-10-04 23:51:45

标签: ruby-on-rails pagination ruby-on-rails-4 will-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'

我需要对这些值进行分页,以便在表格中显示它们。如果我不能对它们进行分页,是否有解决方法?

2 个答案:

答案 0 :(得分:55)

您需要为数据类型will_paginate添加Array方法。

为此,请加上

require 'will_paginate/array'

位于控制器的顶部,如果您需要在所有控制器中进行分页,则位于ApplicationController

答案 1 :(得分:-1)

删除.all对我有用。