質問

私の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とはバージョンが、使用しているレール?

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