それはfind_by_sqlでwill_paginateを組み合わせることが可能ですか?
-
22-09-2019 - |
質問
私のRailsアプリケーションでは、私は私のSQLクエリにページ付けwill_paginate
の宝石を使用します。それは可能ですか?私はこのような何かをやってみましたが、それはうまくいきませんでした。
@users = User.find_by_sql("
SELECT u.id, u.first_name, u.last_name,
CASE
WHEN r.user_accepted =1 AND (r.friend_accepted =0 || r.friend_accepted IS NULL)
.........").paginate(
:page => @page, :per_page => @per_page,
:conditions => conditions_hash,
:order => 'first_name ASC')
ない場合は、、あなたはこれを回避する方法をお勧めすることができますか?私は自分のページネーションを記述する必要はしたくありません。
解決
使用paginate_by_sql
、すなわちます。
sql = " SELECT *
FROM users
WHERE created_at >= '#{2.weeks.ago}'
ORDER BY created_at DESC "
@users = User.paginate_by_sql(sql, :page => @page, :per_page => @per_page)
原則として、任意のファインダがfind*
とpaginate*
を置き換えることによってページ分割することができる。
他のヒント
User.paginate_by_sql(SQL:ページ=> paramsは[:ページ]:PER_PAGE => 10)
これを試してみてください
@users = User.find_by_sql
@users = @users.paginate
何will_paginateとはバージョンが、使用しているレール?
所属していません StackOverflow