ruby-on-rails will-paginate find-by-sql

ruby on rails - ¿Es posible combinar will_paginate con find_by_sql?



ruby-on-rails will-paginate (3)

En mi aplicación Rails quiero usar la gema will_paginate para paginar en mi consulta SQL. ¿Es eso posible? Intenté hacer algo como esto pero no funcionó:

@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'')

Si no, ¿puedes recomendar una forma de evitar esto? No quiero tener que escribir mi propia paginación.


User.paginate_by_sql (sql,: page => params [: page],: per_page => 10)


Prueba esto:

@users = User.find_by_sql @users = @users.paginate

¿Qué versión de will_paginate y rails estás usando?


Utilice paginate_by_sql , es decir

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)

Como regla general, cualquier buscador puede paginarse reemplazando find* con paginate* .