ユーザーのデータベースを検索するレールアプリに取り組んでいます。検索はかなり複雑なので、さまざまな検索パラメーターを格納する検索モデルと、実際にクエリをまとめてオブジェクトの配列を返すそのモデルの結果メソッドがあります。
検索と結果で返されるオブジェクトの間には関係がないため、will_paginate を使用して結果をページ分割することは可能ですか? 私はこれについて間違った方法で進んでいますか?
ユーザーのデータベースを検索するレールアプリに取り組んでいます。検索はかなり複雑なので、さまざまな検索パラメーターを格納する検索モデルと、実際にクエリをまとめてオブジェクトの配列を返すそのモデルの結果メソッドがあります。
検索と結果で返されるオブジェクトの間には関係がないため、will_paginate を使用して結果をページ分割することは可能ですか? 私はこれについて間違った方法で進んでいますか?
配列を改ページする必要なく、自分がしていることを実行できるはずです。ドキュメントによると:
# paginate in Active Record now returns a Relation
Post.where(:published => true).paginate(:page => params[:page]).order('id DESC')
# the new, shorter page() method
Post.order('created_at DESC').page(params[:page])
(( https://github.com/mislav/will_paginate/wikiより))
...そのため、モデル メソッドとしても「where」を作成し、モデル メソッドの結果をページ付けできるはずです。
次の手順に従って、絶対に必要な場合は、配列にページ番号を付けることができます。
https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility#willpaginatecollection