【问题标题】:undefined method `paginate' for #<Array:0x0000000764d1b8>#<Array:0x0000000764d1b8> 的未定义方法“分页”
【发布时间】:2013-10-12 02:43:06
【问题描述】:

这是我在索引控制器中的代码。

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() 时,错误来了。

我得到的错误是

未定义的方法`分页'

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

【问题讨论】:

    标签: ruby-on-rails pagination ruby-on-rails-4 will-paginate


    【解决方案1】:

    删除 .all 对我有用。

    【讨论】:

      【解决方案2】:

      您需要为数据类型Array 包含will_paginate 方法。

      为此,请包含该行

      require 'will_paginate/array'
      

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

      【讨论】:

      • 棘手的事情是,如果您在其他控制器的其他地方需要它,并且在控制器之前调用这个而不需要,那么不会引发错误。所以不要忘记在数组分页的任何地方或上面的任何地方添加它,例如应用控制器。
      • 这很好用,如果您在模型中使用这些,请确保在类定义之外使用它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多