2013-03-26 17 views
6

Per gruppo per data ho usato il metodo group_by.Ruby On Rails Gruppo Mongo per

Example: Product.all.group_by {|d| d.created_at } # return Hash 

Ma kaminari non supporta Hash. Io uso Mongoid e io ho bisogno di raggruppare per data con la navigazione della pagina (kaminari). Come farlo?

+4

Avete di cui a queste domande correlate? http://stackoverflow.com/questions/5482227/grouping-mongoid-objects-by-day?rq=1 http://stackoverflow.com/questions/7354851/mongoid-group-conditions?rq=1 http://stackoverflow.com/questions/12014009/mongoid-group-by-or-mongodb-group-by-in-rails?rq=1 http://stackoverflow.com/questions/15569469/group -clause-mongoid-rails? rq = 1 –

+0

Non potresti chiamare i metodi kaminari prima del group_by? – cpuguy83

risposta

1

Kaminari supportano solo paginare sulla matrice per esempio

Kaminari.paginate_array(an_array).page(1).per(10) 

group_by non è metodo mongoid, il metodo di esso Array, si sta raggruppando tutti i dati in memoria. Per utilizzare la funzione di raggruppamento mongoid, è necessario utilizzare mongodb map/reduce.

Se si ha bisogno di risultato di gruppo in memoria, e mostrare in vista, è necessario convertire manualmente hash per Array