私はカスタムモデルを持っています(データベースの下にあるテーブルによってマッピングされていません)。このカスタムモデルは、多くの他のテーブルのデータを結合した結果にすぎません。私はこれをページ付けするためにカミナリを使いたい。例えばカミナリ:カスタムモデルのページ設定
:
def index
@custom_models = find_all_items # result is an array
render
end
そして私は、ビュー上でこれらの項目をページ分割:私はこれを実行すると
= paginate @custom_models
は、私は例外を満たす:
未定義のメソッド `TOTAL_PAGES'配列の場合:0x007fb4dde63c70
私の質問は、カスタムモデルファイルにKaminariを使用する方法です。
@Edit 私はこのラインを使用し、今雷を使用することができます。
@custom_models = Kaminari.paginate_array(@custom_models)
.page(params[:page]).per(params[:per_page])
しかし、今、私は問題を満たしています。これはカスタムモデルですので、私は、カスタムクエリを使用しています。私は生のSQLクエリを使用し、offset
とlimit
キーワードを使用して自分でページを作成します。
たとえば、私は25レコードを返し、カミナリのデフォルトでは25ページの各ページが表示されるので、1ページしか見ることができません。私は、必要なレコード(たとえば1000レコード)を返すためのクエリを作成できますが、私はKaminariがこれを理解して十分なページを表示する方法を知らないのです。
私はあなたの選択肢を試しました。しかし、私はビューファイルで例外を満たしています: '未定義のメソッド 'total_pages' for #Array:0x007fb4daca5288'。ページネーションについて、私は自分自身でクエリをページ付けします(offsetキーワードとlimitキーワードを使用します)。 –
モデル内で改ページした場合は、手動でページ数を計算する必要があります。モデルとコントローラのレベルについて、コードの点で詳細をあなたの質問に更新してください。 –
私は自分の質問を更新しました。見てください。ありがとう –