質問

次の結果セットが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])

なぜ2番目のクエリは、のpaginateでうまく動作しないのですか?ありがとう!

役に立ちましたか?

解決

#paginateは、インスタンスメソッドが、アレイとのActiveRecord ::ベース上に利用可能です。

:あなたは本当にそれをこのようにやるべきこと
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])

あなただけの最初の10をしたいので、あなたが#paginateその後、#ALL呼び出すと、何をやっていることは、それらの99.999%を廃棄し、その後、のすべてののメンバー(それらのすべて1,000,000)を求めています。これは、控えめに言っても、非常に無駄である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top