def search@objects = paginate Object.search_objects(params)@objects = filtrar_no_activos
render json: @objects
end
def filtrar_no_activosTratando de filtrar en memoria los objetos (porque los criterios son complejos), ya la paginación se vuelve loca. A tal nivel que solo la primera pagina tiene resultados de un total de 5 paginas.
@objects.select {|o| o.activo?}
end
--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Hola Emanuel, me acaba de caer la ficha, y creo saber cual es el problema.
WillPaginate y Kaminari son gemas que te ayudan a paginar simplemente. La funcionalidad de búsqueda o filtro la deberías implementar vos, o usar otra gema en su defecto. Si activo
es un campo de tu modelo, podrías hacer lo siguiente por ejemplo (Kaminari):
Object.where(activo: true).page(params[:page])
Saludos!
--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Hola Emanuel!Según entiendo entonces simplemente querés paginar un Array de objetos. Kaminari se que ofrece esta funcionalidad. Sino podés hacerlo manualmente usando el método brackets pero pasándole un range. Por ejemplo `array[5...10]` devuelve 5 elementos arrancando desde el quinto.Saludos!
El sáb., 23 de jul. de 2016 a la(s) 20:45, Emanuel Friedrich <aemanuel...@gmail.com> escribió:
Hola Rodrigo, gracias.activo? no es una propertie del modelo, es un método. Se que son gemas de paginación solamente.En mi search del modelo hago consultas basadas en cercanía, basadas en texto y en otras cosas más. y las pagino. Se supone que debería retornar por cada página la cantidad de objetos de la pagina, en mi caso 25. Y de esos 25 objetos filtro los que no están activos.... activo? implica pagar una suscripción y si el perfil (objeto sería el perfil de un usuario) fue moderado y aprobado...En principio es un poco laboriosa ya la consulta, en parte hecha pragmática, con metodos de ActiveRecord y en parte con wheres con sql... Y pensaba que esta funcionalidad sería complejo llevarla a una query más... Y si bien pensando un poco podría llegar a colocar la funcionalidad de este metodo activo? en la query sql, ya estoy bastante complicado con la query actual.Mi embole viene del, para mi, irracional problema que estoy teniendo. Si tengo 25 objetos que pasa que si los filtro luego la paginación se rompe así.si quito esta linea@objects = filtrar_no_activosla cosa se normaliza. A esto voyGracias desde ya, y creo que voy a incursionar con esto de meter todo en la query. Y para la proxima quizás pagino a mano y punto.El 23 de julio de 2016, 12:12, Rodrigo Pavano <rodrig...@gmail.com> escribió:Hola Emanuel, me acaba de caer la ficha, y creo saber cual es el problema.
WillPaginate y Kaminari son gemas que te ayudan a paginar simplemente. La funcionalidad de búsqueda o filtro la deberías implementar vos, o usar otra gema en su defecto. Si
activo
es un campo de tu modelo, podrías hacer lo siguiente por ejemplo (Kaminari):Object.where(activo: true).page(params[:page])
Saludos!
--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.
----Emanuel Friedrich
Cel: 3754-442896
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.