0

以下结果集适用于 will_paginate:

Members.all(:limit => 5).paginate(:page => params[:page])
Members.all(:conditions => ["member_no < 6"]).paginate(:page => params[:page])
Members.all.paginate(:page => params[:page])

以下没有:

Members.all(:conditions => ["member_no IN (?)", [1, 2, 3, 4, 5]]).paginate(:page => params[:page])

为什么第二个查询不适用于分页?谢谢!

4

1 回答 1

0

#paginate 是在 Array 和 ActiveRecord::Base 上可用的实例方法。你真的应该这样做:

Member.paginate(:page => params[:page], :limit => 5)
Member.paginate(:conditions => ["member_no < ?", 6], :page => params[:page])
Member.paginate(:page => params[:page])
Member.paginate(:conditions => {:member_no => (1..5)}, :page => params[:page])

当你调用#all 然后调用#paginate 时,你正在做的是询问所有成员(全部 1,000,000 个),然后丢弃其中的 99.999%,因为你只想要前 10 个。至少可以这么说,这是非常浪费的.

于 2010-10-26T12:35:25.950 回答