0

私のコントローラーには、次のものがあります。

@bills = Bill.where(:param1 => x, :param2 => y).sort_by {|u| u.created_at}.reverse.paginate(:page => params[:page])

そして、レンダリングしようとすると、上記のエラーが発生します。where、sort、reverse句を取り除くと問題がなくなりますが、私はそれらが必要です。どうすれば両方を手に入れることができますか?

4

3 に答える 3

0

私は gem meta_search ( usage ) を gem will_paginate ( link ) と組み合わせて使用​​します。ここであなたを助けることができると思います。

于 2013-03-20T10:22:04.797 に答える
0

を呼び出すとsort_by {|u| u.created_at}、データを db から配列にフェッチし、それを ruby​​ 側でソートします。

ruby 配列データのページネーションが必要な場合は、これを試してください。

@bills = Kaminari.paginate_array(Bill.where(:param1 => x, :param2 => y)).page(params[:page]).per(PER_PAGE_RECORDS)`

しかし、DBクエリでデータをソートするより良い方法

@bills = Bill.where(:param1 => x, :param2 => y).order("created_at DESC").paginate(:page => params[:page])
于 2013-02-18T06:56:41.370 に答える
0

ARチェーンを使用します。sort_by は配列になります。

@bills = Bill.where(:param1 => x, :param2 => y).order('created_at DESC').paginate(:page => params[:page])
于 2013-02-18T06:57:04.290 に答える